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