しきい値と検出区間を指定して動きの少ない区間を調べるfreezedetect
フィルタの使い方。
基本コマンド
ffmpeg -i input -vf freezedetect=n=0.001:d=2 -an -f null -
ログの出力例。
lavfi.freezedetect.freeze_start: 118.318 lavfi.freezedetect.freeze_duration: 7.34067 lavfi.freezedetect.freeze_end: 125.659
metadata
フィルタでログをテキストに出力する。
ffmpeg -i input -vf freezedetect=n=0.001:d=2,metadata=mode=print:key=lavfi.freezedetect.freeze_duration:file=freeze_duration.txt -an -f null -
メタデータをコンソールに表示する metadata, ametadata
flat形式だけは検出されない区間がないので目視しやすい。
ffprobe -v error -f lavfi -i movie=input,freezedetect -select_streams v:0 -show_entries packet_tags=lavfi.freezedetect.freeze_duration -of flat > freeze_duration.txt
検出されない区間は空データになりログのファイルサイズが大きくなる。
ffprobe -v error -f lavfi -i movie=input,freezedetect -select_streams v:0 -show_entries packet_tags=lavfi.freezedetect.freeze_start,lavfi.freezedetect.freeze_end,lavfi.freezedetect.freeze_duration -of json > freezedetect.json
公式ドキュメント:FFmpeg Filters Documentation : freezedetect
オプション
- n, noise[double]
ノイズ許容値の指定
既定値:0.001
範囲:0から1まで - d, duration[duration]
検出区間の最小値の指定。この値以上で検出する
既定値:2
扱えるメタデータ。
lavfi.freezedetect.freeze_start lavfi.freezedetect.freeze_end lavfi.freezedetect.freeze_duration