First Version
This commit is contained in:
commit
2c8f2ebce5
1 changed files with 40 additions and 0 deletions
40
thumbnail.sh
Executable file
40
thumbnail.sh
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/bash
|
||||||
|
inputfile=$1
|
||||||
|
mode=$2
|
||||||
|
setting=$3
|
||||||
|
tile=$4
|
||||||
|
|
||||||
|
if [ ! -f "$inputfile" ]
|
||||||
|
then
|
||||||
|
echo "$(tput setaf 1)no input file$(tput sgr0)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
outputfile=${inputfile%.*}.jpg # without file type
|
||||||
|
if [ -z "$tile" ]
|
||||||
|
then
|
||||||
|
tile="3x3"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$mode" == "best" ]
|
||||||
|
then
|
||||||
|
if [ -z "$setting" ] || (( $setting < 50 ))
|
||||||
|
then
|
||||||
|
setting="800"
|
||||||
|
echo "$(tput setaf 2)using default number of frames to analyse: $(tput setaf 3)$setting$(tput sgr0)"
|
||||||
|
fi
|
||||||
|
ffmpeg -y -i $inputfile -vsync 0 -vf "thumbnail=$setting,tile=$tile" -frames:v 1 $outputfile
|
||||||
|
|
||||||
|
elif [ "$mode" == "fast" ]
|
||||||
|
then
|
||||||
|
if [ -z "$setting" ] || (( $setting < 1 ))
|
||||||
|
then
|
||||||
|
setting="120" #min seconds between keyframes
|
||||||
|
echo "$(tput setaf 2)using default seconds between keyframes: $(tput setaf 3)$setting$(tput sgr0)"
|
||||||
|
fi
|
||||||
|
ffmpeg -y -i $inputfile -vsync 0 -vf select="eq(pict_type\,I)*(isnan(prev_selected_t)+gte(t-prev_selected_t\,$setting))",tile=$tile -frames:v 1 $outputfile
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "$(tput setaf 1)invalid mode$(tput sgr0)"
|
||||||
|
echo "use \"best\" or \"fast\""
|
||||||
|
exit 1
|
||||||
|
fi
|
Reference in a new issue