FFMPEG(コマンドライン入力)を使用して、ビデオを特定の出力形式に変換します。私が直面している問題は、一定のビットレート(700 kbps)をFFMPEGに渡そうとすると、異なるビットレート(たとえば1000 kbps)の出力ビデオになります。この現象はすべての動画で常に発生しますが、なぜこれが起こっているのですか?一定のビットレートを維持する必要があります。誰かが私を助けてくれますか?.
私のFFMPEGバージョンは0.5です
FFMPEGに渡すコマンドラインパラメーターは、
-i {inputfile}
-b 700k -ab 64k
-vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240
{outputfile}
編集:
次のパラメータを使用すると、+ /-3%の変動でCBRを強制することができました。
ffmpeg -i myfile.avi
-b 4000k -minrate 4000k
-maxrate 4000k -bufsize 1835k out.m2v
しかし、パラメーターセットと共に-maxrateおよび-minrateを使用した場合、CBRを強制することができませんでした。私のパラメータセットは次のとおりです。
-i {inputfile}
-b 1200k -minrate 1200k
-maxrate 1200k -bufsize 1200k
-ab 64k -vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240
{outputfile}
なんでこんなことが起こっているの?
これを試して:
ffmpeg
-i input
-b 1200k
-minrate 1200k
-maxrate 1200k
-bufsize 1200k
-ab 64k
-vcodec libx264
-acodec aac -strict -2
-ac 2
-ar 44100
-s 320x240
-y output.mp4
「-strict -2」を必要とするlibfaacの代わりにaacを使用する必要がありました。
また、出力ファイル名に「.mp4」を追加する必要がありました。
"-y"はファイルを上書きするように指示するので、出力ファイル名の横に移動しましたが、あなたがそれを持っている場所でも動作するようです。
私は64ビットOS X 10.8.4でこれを行いました。 ffmpegバージョン1.2.1-tessus。
同じffmpegのバージョンが32ビットと64ビットのlinuxシステムで異なる動作をするのを見てきたので、これがうまくいくかどうかは誰にもわかりません。