web-dev-qa-db-ja.com

Webパブリッシングの最高のVP9品質のためのffmpegの設定

Apple ProRes 422形式のビデオがあります。これをGoogleのVP9にエンコードして、Webで公開する予定です。ソースは次のとおりです。

Stream #0:0(und): Video: prores (apcn / 0x6E637061), yuv422p10le(bt709), 1920x1080, 114644 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 24k tbn, 24k tbc (default)

私の目標は、オリジナルとほとんど区別がつかない、可能な限り最高の(合理的な)品質でVP9にエンコードすることです。結果のファイルサイズは実際には問題ではありません。今私は以下を使用しますが、Chromeのビデオは見栄えが悪いです:

ffmpeg -i Source.mov -c:v libvpx-vp9 -b:v 4M -pix_fmt yuv420p -speed 4 -frame-parallel 0 -threads 2 -c:a libopus -b:a 320K Result.webm

-b:v 4Mの設定を上げようとすると、サイズが大きくなりますが、品質は上がりません。また、 このガイド を試しましたが、おそらく古く、満足のいく結果を得ることができません。ちなみに、私は最新のffmpegをソースからコンパイルしています。

どのffmpeg設定を使用する必要がありますか?

2

さて、いくつかの実験の後、私が質問で言及したガイドが非常に役立つことがわかりました。 一定品質の推奨設定セクションの指示で成功しました。微調整する必要があるのは-crf設定です。

かなり多くのテストを行った結果、-crf 23設定になり、結果のwebmファイルは元のファイルと比較して非常に高品質になりました。

正確なffmpegコマンドは次のとおりです。

  1. 最初のパス:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 1 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 4 -tile-columns 6 -frame-parallel 1 -an -y -f webm /dev/null
    
  2. 2番目のパス:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 2 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 320k -f webm Out.webm
    

何らかの理由で、最初のパスは-threads 2オプションにもかかわらず、すべてのCPUコア(私の場合は2)を使用しませんが、2番目のパスはそれらすべてを使用します。

2

速度4で1パスエンコードを実行しています。これは高速パラメーターですが、最適な品質にはほど遠いです。

ガイドは良さそうですが、2パスまたは一定/制約付きの品質設定を試しましたか?明らかに、彼らの例の1000kビットレートを維持しないでください。

2
Ely