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