動画のサムネイルを作る方法
動画のファイルって数が増えてくると整理しづらいって事で、ダイジェスト一覧を作りたいってことで
ffmpegとImagemagickが必要です
シェルスクリプトはBSD仕様です。
シーンチェンジが有った部分と60秒間シーンチェンジを検出できない場合、60秒経過後のIフレームをサムネイル化します
(フェードインフェードアウトで繋いでいる場合などシーンチェンジを検出できない為)
ファイルと同名のjpgファイルを作ります。
実行するのに結構時間が掛かります。
寝てる間にfindとxargsなんかを組み合わせてどうぞ
あ、当然無保証です
#!/bin/sh
SRCFILE=`realpath "$1"`
TRGFILE=${SRCFILE%.*}.jpg
if [ -f "$SRCFILE" ] ; then
if [ ! -f "$TRGFILE" ] ; then
TMPWORKDIR=`mktemp -d -t $(basename $0 .sh)`
echo "$SRCFILE -> $TRGFILE"
ffmpeg -threads 6 -i "${SRCFILE}" -vf select='gt(scene\,0.4)+(isnan(prev_selected_t)+gte(t-prev_selected_t\,60)*eq(pict_type\,I))',scale=400:300,tile=1x1 \
-vsync 0 ${TMPWORKDIR}/%06d.png > /dev/null 2>&1
cd ${TMPWORKDIR}
TMPFILE=`mktemp "${SRCFILE%.*}.XXXXXX"`
montage *.png -geometry +0+0 jpeg:"$TMPFILE" > /dev/null 2>&1
mv "$TMPFILE" "$TRGFILE"
cd /tmp
rm -rf $TMPWORKDIR
fi
fi