しきい値と検出区間を指定して動きの少ない区間を調べる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 の使い方

検出されない区間は空データになりログのファイルサイズが大きくなる。
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

コメントを残す

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

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