FFmpeg for Linux編碼3gp時的問題
系統環境如下:軟件: CentOS-4.4 x86_64,FFmpeg 0.5
硬件: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz
FFmpeg for Linux的安裝這里就不討論的,感興趣的去看我另外一個文章:http://www.aygfsteel.com/javaren/articles/install_ffmpeg_on_linux_64bit.html
問題: 將尺寸為QVGA、碼率200kbps左右的flv格式視頻編碼為22-110kbps碼率,QCIF尺寸的3gp視頻,采用CBR編碼方式時,H.263的3gp碼率控制效果非常好,幾乎完美,編碼參數如下:
ffmpeg -i /opt/ready/flv/jzxsrl.flv -vcodec h263 -b 110k -minrate 110k -maxrate 110k -bufsize 110k -r 12 -acodec libfaac -ab 12k -ar 8000 -ac 1 -s 176x144 -padtop 0 -padbottom 0 -padleft 0 -padright 0 /opt/movies/3gp/jzxsrl_3dtd.3gp
但是采用H.264編碼時,碼率突然比要求的高出不少(應用要求不能高出+2kbps,或低于-10kbps),編碼參數如下:
ffmpeg -i /opt/ready/flv/jzxsrl.flv -vcodec libx264 -b 110k -minrate 110k -maxrate 110k -bufsize 110k -r 12 -acodec libfaac -ab 12k -ar 8000 -ac 1 -s 176x144 -padtop 0 -padbottom 0 -padleft 0 -padright 0 /opt/movies/3gp/jzxsrl_hdtd.3gp
編碼完畢后檢查生成的3gp文件,發現碼率為118kbps,高了6kbps,是不合格的,對比H.263,自己猜測問題可能會出在libx264編碼支持庫上,準備更換個版本嘗試一下。試驗結果待續...