2つ入力した映像を比較し PNSR(Peak Signal to Noise Ratio:2つの映像、または画像の同位置のピクセルの輝度を比較する指標)。MSE(mean squared error)は PSNR を計算するのに使われる。
- 文字を描写する drawtext
- 新しい映像の品質評価 libvmaf
- 2つの映像の画質評価をする SSIM
- 新しい映像の動きの評価 vmafmotion
- 比較する動画の解像度に合わせる scale2ref
- メタデータを映像化する drawgraph, adrawgraph
- 映像フィルタを当てる前後のデータを見える化する
- メタデータをコンソールに表示する metadata, ametadata
- Windows の ffmpeg で生放送する方法 : エンコードのログ出力の方法
海外カンファレンスで得た知見を最大化する 〜 NAB Show 2018 編 〜 : developers.cyberagent.co.jp
基本コマンド
最終結果だけを表示。1入力がオリジナルの動画で、2入力が PSNR を計算する動画。
ffmpeg -i input1 -i input2 -filter_complex psnr -an -f null -
1入力と2入力の解像度が異なるときはscale2ref
フィルタで解像度指定しなくても揃えられる。
ffmpeg -i input1 -i input2 -filter_complex scale2ref,psnr -an -f null -
ログファイルを出力する。
ffmpeg -i input1 -i input2 -filter_complex psnr=stats.txt -an -f null -
コンテナフォーマットが異なる、例えばMP4とMKVなどを比較する。
ffmpeg -i input1.mp4 -i input2.mkv -filter_complex "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -an -f null -
metadata
フィルタでフレーム単位でコンソールに表示する方法。ここではunsharp
フィルタの psnr_avg を表示している。
ffplay -i input -vf split[a][b];[b]unsharp[B];[a][B]psnr,metadata=print:key=lavfi.psnr.psnr_avg
テキストに出力する方法。
ffmpeg -i input1 -i input2 -filter_complex psnr,metadata=mode=print:file=foo.txt -an -f null -
映像に焼き付けて再生する。
ffplay -f lavfi -i movie=input1.mp4[a];movie=input2.mp4[b];[a][b]psnr,drawtext=fontfile="C\\://Windows/Fonts/arial.ttf":fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"PSNR="%{metadata\:lavfi.psnr.psnr_avg}'
lavfi.psnr.X形式でXに代入できるのは、mse_avg, psnr_avg である。
framesync の設定にも対応している
2ファイル入力するフィルタの挙動設定 framesync
オプション
- stats_file, f[string]
ログファイルの出力名 - stats_version[int]
ログファイルのバージョン指定
既定値:1、ログファイル1行目の項目を表示しない
範囲:1, 2 - stats_add_max[boolean]
最大値をログファイルに出力するかの指定。出力する場合はstats_version=2を指定する
既定値:0
ログファイルの見方
- psnr_log_version
stats_versionのバージョン - n
フレーム番号 - mse_avg
すべてのチャンネルの不偏分散平均 - mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
個別のチャンネルの不偏分散平均 - psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
個別のチャンネルの psnr - max_avg, max_y, max_u, max_v
YUVチャンネルの最大許容値の平均、個別のチャンネルの最大許容値