Remco Muijs氏とIhor Kirenko氏の”A no-reference blocking artifact measure for adaptive video processing.”を基としたフレームのブロックノイズを数値化するblockdetectフィルタの使い方。フィルタを通しても映像は変化しない。メタデータに出力するのでffprobe連携できる。

ぼやけている映像を数値化するblurdetectフィルタもある。

フレームのぼやけ度を判定するblurdetect

基本コマンド

metadataフィルタでコンソールにフレーム毎の結果を表示する。
ffmpeg -i input -vf blockdetect=period_min=3:period_max=24:planes=1,metadata=print:key=lavfi.block -an -f null -
ffmpeg -i input -vf blockdetect=3:24:1,metadata=print:key=lavfi.block -an -f null -

drawtextフィルタで映像にフレーム毎の結果を描写する。
ffplay -i input -vf blockdetect,drawtext=y=40:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"blockdetect ("%{metadata\:lavfi.block})'

ffprobeで統計をログで出力する。
ffprobe -v error -f lavfi -i movie=input.mp4,blockdetect -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.block -of csv=print_section=0 > blockdetect.csv
ffprobe -v error -f lavfi -i movie=input.mp4,blockdetect -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.block -of csv=print_section=0 -o blockdetect.csv

公式ドキュメント:FFmpeg Filters Documentation : blockdetect

オプション

  • period_min[int]
    検索する最小周期
    既定値:3
    範囲:2から32まで
  • period_max[int]
    検索する最大周期
    既定値:24
    範囲:2から64まで
  • planes[int]
    フィルタを当てるチャンネル指定
    既定値:1
    詳しくは ffmpeg について | チャンネルの順番と注意点を参照

メタデータ出力内容。

lavfi.block

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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