質問:
ある解像度/ビットレートのソースビデオの「パス1」エンコードを、同じソースの「パス2」エンコードの入力として使用することは合法ですか?違う解像度/ビットレート?試してみたら見てぇぇぇぇぇ動作すると思われますが、一般的なケースで動作するかどうかはまったくわかりません。ストリーム プロファイル (I/P/B フレームの選択など) は、両方のパスに同じパラメーターを使用する場合とは異なって見えますが、「十分に良好」であるように見えます。
この件に関して、私は権威ある回答が必要な段階にきています。
なぜターネーション 1あなたならそうしますか?
2パスエンコードは、おそらくすぐには修正されないであろうFFMPEG(実際にはx264)の厄介なバグを修正するためです。マシンの速度によっては、ビデオの最初の約1秒程度が非常に不適切なビットレートになることがよくあります。これは、非常に高速なマシン(たとえば、EC2 c4.8xlarge)。アイドル状態のi7クアッドコアMacBook Proではありませんこのバグを再現するには十分です。
それは極めて高い:
シングルパスCBRVBV指定された
(VBVのないCBRは無視してくださいCBRではない)
または低すぎる:
- シングルパスCBRVBV
- シングルパスVBR:QスケールとVBVおよび最大レート
VIFpとSSIMの両方の品質測定は、低/高ビットレートが実際に不必要に低下/増加した品質(つまりビットレート)に対応していることを示しています。いけない高くなったり低くなったりした。
2パスCBRエンコードを実行すると素晴らしいそして、時間があれば、問題を解決します。残念ながら、単一の解像度に対して 2 パス エンコードの遅延を許容することはできません。
それで、あなたは何をしたいのですか?
現在、低解像度 (480) で初期トランスコードを実行しています。これにより、できるだけ多くの再生デバイスをカバーできます。これをパス 1 として使用したいと思います。いずれにせよ 480 解像度はひどいので、ビデオの最初の 1 秒のビットレートがおかしいかどうかに関係なく、パス 1 ビデオを 480 として投稿できます。
私は次に480 パス 1 情報高解像度の場合はパス 2 のみを実行します。CBR/VBV の場合は次のようになります。
ffmpeg -i source.mp4 -pass 1 -vf scale=852:480 -c:v libx264 -b:v 1000k ... 480.mp4
ffmpeg -i source.mp4 -pass 2 -vf scale=1280:720 -c:v libx264 -b:v 2500k ... 720.mp4