同じ解像度、フレームレート、ピクセルフォーマット、タイムベースの2つの映像の相関関係を調べるcorr
フィルタの使い方。似た用途のフィルタにssim
、msad
フィルタがある。
2つの映像の画質評価をする SSIM
2つの映像の差の絶対値の合計平均を調べるmsad
framesyncに対応しているので片方の出力が終わったら終了するようにできる。
2ファイル入力するフィルタの挙動設定 framesync
基本コマンド
オプション設定はなし。出力値は0から1までの小数。似てないと0に近づき、似ていると1に近づく。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex corr -an -f null -
タイムベースが揃ってないとそれぞれのタイムベースがコンソールに表示されるのでsettb
フィルタで指定する。
ffmpeg -i 調べたい動画 -i 元の動画 -filter_complex "[0:v]settb=1001/24000[0v];[1:v]settb=1001/24000[1v];[0v][1v]corr" -an -f null -
公式ドキュメント:FFmpeg Filters Documentation : corr
メタデータ出力内容。
lavfi.corr.corr.V lavfi.corr.corr.U lavfi.corr.corr.V lavfi.corr.corr_avg
ffprobe連携例。出力時間は-read_intervalsで指定。
ffprobe -f lavfi -i movie=enc.mp4,settb=1001/24000,setpts=PTS-STARTPTS[0];movie=orig.mp4,settb=1001/24000,setpts=PTS-STARTPTS[1];[0][1]corr -show_entries packet_tags=lavfi.corr.corr_avg -read_intervals "%1" > corr_avg.txt