一定のビット レートで (libx264 ライブラリ経由で) ffmpeg を使用してビデオを H.264 にエンコードしようとしています。VBR が好まれることが多いのはわかっていますが、この特定のジョブでは CBR を使用する必要があります (1 秒あたりのキロバイト数が非常に多い限り、フレームあたりの正確なキロバイト数である必要はありません)。 . 私がテストに使用しているサンプル ビデオは、次の場所にあります。 apple.com/kb/HT1425 )
MPEG-4 Video でビデオをエンコードするときに一定のビット レートを得ることができ (コマンドを使用ffmpeg -i sample_iTunes.mov -b 819968 -minrate 819968 -maxrate 819968 out.mov
)、ビット レートは期待どおりです。QuickTime Inspector を介してビデオの仕様を読み取ると、844.94 kbit/s のデータ レートが得られます。涼しい。
しかし、コーデックを libx264 に変更すると、ビットレート要求が完全に無視されるようです! 私が試しているコマンドは「ffmpeg -i sample_iTunes.mov -vcodec libx264 -vpre medium -b 819968 -vb 819968 -minrate 819968 -maxrate 819968 -bufsize 400000 test.mov
」です。しかし、QuickTime Inspector でビデオの仕様を確認すると、データ レートは 254.74 kbit/s でした。なんてこと?それも近くありません!
非常に多くのパラメーターを変更し、さまざまなものを追加しようとしましたが、これをグーグルで2日間調べましたが、うまくいかないようです. ビデオを MainConcept H.264 エンコーダーでエンコードすると、一定のビットレートを取得できますが、ffmpeg で動作させるにはこれが必要です。
誰かが FFmpeg で CBR H.264 エンコーディングを行う方法を理解するのを手伝ってくれるなら、私はあなたを永遠に愛します!