クロスプラットフォームに対応し、フィルタの有無、エンコード設定の差異による目視確認に便利なvideo-compareの紹介。WindowsバイナリはReleasesページで配布している。コンソールから起動する。
GitHub – pixop/video-compare: Split screen video comparison tool using FFmpeg and SDL2
基本コマンド
ヘルプを表示する。
video-compare -h
左側にvideo1.mp4、右側にvideo2.mp4を再生する。
video-compare video1.mp4 video2.mp4
高DPIモードで再生する。
video-compare -d video1.mp4 video2.mp4
10ビット深度モードで再生する。無指定は8ビット深度。
video-compare -b video1.mp4 video2.mp4
2つの映像をvstackでは縦に並べる。hstackは横に並べる。無指定、またはsplitは2つの映像を重ねる。
video-compare -m vstack video1.mp4 video2.mp4
指定した解像度(横幅x縦幅)で再生する。
video-compare -w 1920x1080 video1.mp4 video2.mp4
指定した秒だけ右側の映像のタイムスタンプをずらす。
video-compare -t 1.5 video1.mp4 video2.mp4
-lで左の映像にffmpegのフィルタを、-rで右の映像にffmpegのフィルタを当てる。ffmpegと同様のフィルタチェーンが使える。
video-compare -l extractplanes=y -r lutyuv=negval:negval:negval video1.mp4 video2.mp4
420サブサンプリングのとき、輝度と彩度を横に並べる。
video-compare -l “extractplanes=y+u+v,xstack=3:0_0|w0_0|w0_h1” -r “extractplanes=y+u+v,xstack=3:0_0|w0_0|w0_h1” video1.mp4 video2.mp4
420サブサンプリングのとき、輝度と彩度を上下に並べる。
video-compare -l “extractplanes=y+u+v,xstack=3:0_0|0_h0|w1_h0” -r “extractplanes=y+u+v,xstack=3:0_0|0_h0|w1_h0” video1.mp4 video2.mp4
各映像チャンネルを分離する extractplanes
解像度が一致しなくても映像を並べられる xstack
ショートカットキー
- H:スクリーン上にヘルプ文の非表示/表示の切り替え
- Space:再生/一時停止の切り替え
- コンマ:双方向のバッファ内ループ/一時停止を切り替える
- ピリオド:前方向のみのバッファ内ループ/一時停止を切り替える
- Escape:終了
- 下向き矢印:15秒前にシーク
- 左向き矢印:1秒前にシーク
- ページダウン:600秒前にシーク
- 上向き矢印:15秒先にシーク
- 右向き矢印:1秒先にシーク
- ページアップ:600秒先にシーク
- J:再生速度を下げる
- L:再生速度を上げる
- S:左右の映像を入れ替え
- A:一時停止中時に前のフレームに移動。一度再生してバッファをためないと移動できない
- D:一時停止中時に次のフレームに移動。一度再生してバッファをためないと移動できない
- F:両方のフレームをPNG画像として現在のディレクトリに保存
- P:マウスカーソル下の位置のピクセル値をコンソールに表示
- M:PSNR, SSIM, VMAFをコンソールに表示
- Z:カーソル周辺を拡大し、結果を左下に表示
- C:カーソル周辺を拡大し、結果を右下に表示
- R:映像を中心に戻し、ズームを100%にリセット (x1)
- 1:左側の映像を非表示/表示の切り替え
- 2:右側の映像を非表示/表示の切り替え
- 3:HUD(Head Up Display)の非表示/表示の切り替え
- 5:50%ズーム (x0.5)
- 6:100%ズーム (x1)
- 7:200%ズーム (x2)
- 8:400%ズーム (x4)
- 0:映像/差分モードの切り替え
- +:右側の映像を1フレーム先にタイムシフト
- -:右側の映像を1フレーム前にタイムシフト
補足
- 可動スライダーの位置はマウス移動で調整できる
- マウスホイールを使用して、カーソル下のピクセルを拡大/縮小する。右クリックしながらマウスを移動すると表示する映像の場所も変えられる
- マウスを左クリックすると、マウスカーソルの水平位置がウィンドウ幅に相対する時間にシークする(時間はは右下に表示される)
- Shift押しながらDで次のフレームに移動する
- +/-でタイムシフトするときに、CTRLを押しながら操作すると、1回のキーストロークで10フレームの増減し、ALTを押しながら操作すると、100フレームの増減する
- 同じファイルを2つ読み込まずに、2つ目を__指定しても読み込める
- Pでマウスカーソル下の座標、RGB、YUVの値をコンソールに表示
ハードウェアデコード
--right-decoder、--left-decoder
で、デコーダ名の指定。
QSV
- h264_qsv
- mjpeg_qsv
- mpeg2_qsv
- hevc_qsv
- vc1_qsv
- vp8_qsv
- vp9_qsv
- av1_qsv
NVDEC
- h264_cuvid
- hevc_cuvid
- mjpeg_cuvid
- mpeg1_cuvid
- mpeg2_cuvid
- mpeg4_cuvid
- vc1_cuvid
- vp8_cuvid
- vp9_cuvid
- av1_cuvid
--right-hwaccel、--left-hwaccel
で、ハードウェアデコード支援デバイスの指定。
- vulkan
- d3d12va
- d3d11va
- dxva2
- videotoolbox