21

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}

なぜこうなった?

4

1 に答える 1

15

これを試して:

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 システムで異なる動作をするのを見てきました。

于 2013-08-09T19:41:45.657 に答える