2017-04-06 10 views
1

私はVP9でiPhone 6を使って4kのビデオショットをエンコードしようとしています。参考FFmpeg - VP9エンコーディングに適切なビットレートを選択する

、Iは、エンコードしたいビデオのストリームデータ、ffprobe介し:

Duration: 00:00:10.48, start: 0.000000, bitrate: 46047 kb/s 
    Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p(tv, bt709), 3840x2160, 45959 kb/s, 29.98 fps, 29.97 tbr, 600 tbn, 1200 tbc (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 
     encoder   : H.264 
    Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, mono, fltp, 79 kb/s (default) 
    Metadata: 
     creation_time : 2017-03-13T21:12:56.000000Z 
     handler_name : Core Media Data Handler 

Iはthese instructionsに基づいて、次のFFmpegのコマンドを使用しています(Best Quality (Slowest) Recommended Settingsセクションを参照)。

  1. ffmpeg -i INPUT.mov -c:v libvpx-vp9 -pass 1 -b:v 46000K -threads 4 -speed 4 -g 9999 -an -f webm -y /dev/null
  2. ffmpeg -I INPUT.mov -c:v libvpx-vp9 -pass 2 -b:v 46000K -threads 4 -speed 0 -g 9999 -an -f webm OUTPUT.webm

た映像は、元から視覚的に区別がつかないように最適-b:v値を選択するのベストプラクティスはありますか?私は36000Kから46000Kまでの範囲の値を試しましたが、これらの結果、大量のファイルが生成され、全体のビットレートが目標のビットレートを超えます。

ありがとうございます!

+2

これは、CRF(一定品質)モードの目的です。 '-crf 20 -b:v 0'を使用します。2つのパスをスキップします。入力上の短いセグメントに異なるCRF値(0〜63)でテストします。十分に小さい出力と十分な出力を生成する値をヒットしたら、その値を使用します。 – Mulvya

+0

@ Mulvyaのコメントの上にボーナスポイントがあります。他のエンコーダでは、1パスと2パスのCRFで同じ結果が得られるはずですが、これは残念なことにlibvpxの場合ではありません。 CRFをやっている... –

答えて

0

異なるビットレートを実験して結果を確認するだけです。私は人工物を見ることを試みる。まだ髪は良く見えますか?布?手紙、道路標識や店の窓のような?ブロック性がない?シャープなエッジで暗くて明るい出血はない?いいえ、エコー?私は、原作ではモーションブラーが判りにくいと判断し、それを圧縮アーチファクトとの違いを説明するために並べて比較する必要があります。

36000kの1/10を試してください。私は名目上の400kビットレートのvp9が1280x720ビデオでうまく動作することを発見しました。 (ffmpegでlibvpx-vp9オーバーシュート、そして私は通常20%高い実際のビットレート、480kで終わる)4Kは3840x2160、9x 1280x720のサイズなので、3600kビットレートで良い結果が得られるはずです。

もう1つのガイドは、vp9がビットレートの半分でmp4とほぼ同じ品質であることが伝えられています。 mp4の1000kビットレートでよく見えるビデオは、vp9で500kで良く見えるはずです。

関連する問題