黒フレームを調べる blackframe
フィルタの使い方。輝度の値からどれだけ黒いかの設定があるのでシーンチェンジを調べるのに使える。blackdetect
よりも設定方法が分かりやすい。
基本コマンド
コンソールの表示されるのでテキストにリダイレクトした方が見やすい
ffmpeg -i input -vf blackframe=98:32 -f null -
ffmpeg -i input -vf blackframe=98:32 -f null - > blackframe.txt 2>&1
出力例
frame:1170 pblack:99 pts:3513510 t:39.039000 type:I last_keyframe:1170
似たようなフィルタに blackdetect
があるのでこちらを併用することもできる。
ffmpeg -i input -vf blackframe,blackdetect -f null -
color
ソースの黒は輝度の値が 16 になるので、threshold, thresh の値は 17 以上で反応する
輝度の値の調べ方のコマンド例
ffplay -f lavfi color -vf datascope
ffplay -f lavfi color -vf signalstats,metadata=print:key=lavfi.signalstats.YMIN
映像の 3/4 が黒なので 75(%)以下の指定で反応する
ffmpeg -f lavfi -i color=s=40x40:d=2 -vf split=4[0][1][2][3];[0]lutyuv=y=255[0a];[0a][1]vstack[u];[2][3]vstack[b];[u][b]hstack,blackframe=75 -f null -
公式ドキュメント:FFmpeg Filters Documentation : blackframe
オプション
- amount[int]
1フレームの何パーセント以上を黒と判断するか。float ではないのに注意
既定値:98 - threshold, thresh[int]
指定した値より小さい輝度の値を検出する
既定値:32
関連記事
ffmpeg できれいにロゴを消す方法