x264でffmpegを使用した経験があり、libvpx-vp9と比較したかった. x264 と libvpx-vp9 の両方で crf 設定とプリセットを変更して、生のビデオの単純なシングル パス エンコーディングをテストしました。私はlibvpxを初めて使用し、これとこれを慎重にフォローしましたが、取得した結果があまり意味をなさないため、パラメーターの間違った組み合わせを指定した可能性があります。
x264 の場合:
ffmpeg -i test_video.y4m -c:v libx264 -threads 1 -crf <crf> -preset <preset> -y output.mkv
そして、次の結果を得ました。
codec , settings , time , PSNR ,bitrate
libx264,['-crf', '20', '-preset', 'fast'],13.1897280216, 42.938337 ,15728
libx264,['-crf', '20', '-preset', 'medium'],16.80494689, 42.879753 ,15287
libx264,['-crf', '20', '-preset', 'slow'],25.1142120361, 42.919206 ,15400
libx264,['-crf', '30', '-preset', 'fast'],8.79047083855, 37.975141 ,4106
libx264,['-crf', '30', '-preset', 'medium'],9.936599016, 37.713778 ,3749
libx264,['-crf', '30', '-preset', 'slow'],13.0959510803, 37.569511 ,3555
これは私には理にかなっています。crf 値を指定すると PSNR の値が得られ、プリセットを変更するとビットレートは減少しますが、エンコード時間は増加します。
libvpx-vp9 の場合、次のことを行いました。
ffmpeg -i test_video.y4m -c:v libvpx-vp9 -threads 1 -crf <crf> -cpu-used <effort> -y output.mkv
まず、オンラインのチュートリアルから、このオプションはx264-cpu-used
と同等であると考えました。-preset
あれは正しいですか?もしそうなら、との違いは-quality
何ですか?さらに、範囲は -8 から 8 までであるため、正の値が最も遅いオプションである負の値を想定しました。私が得る結果は非常に混乱しています:
codec , settings , time , PSNR ,bitrate
libvpx-vp9,['-crf', '20', '-cpu-used', '-2'],19.6644911766,32.54317,571
libvpx-vp9,['-crf', '20', '-cpu-used', '0'],176.670887947,32.69899,564
libvpx-vp9,['-crf', '20', '-cpu-used', '2'],20.0206270218,32.54317,571
libvpx-vp9,['-crf', '30', '-cpu-used', '-2'],19.7931578159,32.54317,571
libvpx-vp9,['-crf', '30', '-cpu-used', '0'],176.587754965,32.69899,564
libvpx-vp9,['-crf', '30', '-cpu-used', '2'],19.8394429684,32.54317,571
ビットレートは非常に低く、PSNR はcrf
設定の影響を受けないようです (x264 に比べて非常に低い)。この-cpu-used
設定の影響はごくわずかで、-2 と 2 は同じオプションのようです。何が欠けていますか? libvpx はエンコードに時間がかかると予想していましたが (これは間違いありません)、同時により高品質のトランスコードを実現しました。x264 と公平に比較するには、どのパラメーターを使用すればよいですか?
編集: @mulvya とこのドキュメントのおかげで、libvpxを使用して crf モードで動作するには、-b:v 0
. テストを再実行すると、次のようになります。
codec , settings , time , PSNR ,bitrate
libvpx-vp9,['-crf', '20', '-b:v', '0', '-cpu-used', '-2'],57.6835780144,45.111158,17908
libvpx-vp9,['-crf', '20', '-b:v', '0', '-cpu-used', '0'] ,401.360313892,45.285367,17431
libvpx-vp9,['-crf', '20', '-b:v', '0', '-cpu-used', '2'] ,57.4941239357,45.111158,17908
libvpx-vp9,['-crf', '30', '-b:v', '0', '-cpu-used', '-2'],49.175855875,42.588178,11085
libvpx-vp9,['-crf', '30', '-b:v', '0', '-cpu-used', '0'] ,347.158324957,42.782194,10935
libvpx-vp9,['-crf', '30', '-b:v', '0', '-cpu-used', '2'] ,49.1892938614,42.588178,11085
追加でPSNRとビットレートが大幅にアップ-b:v 0