黒フレームを調べる blackframe


黒フレームを調べる 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 -

黒フレーム区間を調べる blackdetect

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 できれいにロゴを消す方法

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)