因為我的itouch4不支援rmvb,想要在上網看動畫片就必需要轉成mp4。原本我用mediacoder來轉,但最近的幾個版本經常出錯。前段時間寫了一個用avs+x264來轉換的,現在又想把avs也給去掉,準備用上ffmpeg。
使用
1、查看rmvb屬性
轉換之前先查看一下檔案屬性,將解析度等資訊看一下,如果解析度超過960*640就需要調整。順便看一下碼率,壓製成x264的時候參考一下。
ffmpeg -i 檔案名稱
2、壓製成mp41.pass1編碼
ffmpeg -i 01.rmvb -an -vcodec libx264 -b 560k -pass 1 -f mp4 -y NUL
-an : 不編碼音頻-vcodec : 設定視頻的編碼,我這裡使用的是x264-b : 這個是碼率-f : 強制使用格式-y : 自動輸y確認NUL : 因為是pass1 所以不需要輸出檔案,直接用NUL
2.pass2編碼
ffmpeg -i 01.rmvb -acodec copy -vcodec libx264 -b 560k -pass 2 -f mp4 01.mp4
因為現在很多rmvb的音頻部分都是aac編碼的,所以可以直接用-acodec copy複製音頻部份
3、針對某些檔案的參數調整
有些rmvb或著mkv之類的解析度比較高,所以傳到itouch需要調整一下。在ffmpeg裡面可以用-s參數:
ffmpeg -i 01.rmvb -acodec copy -vcodec libx264 -b 560k -s 960x640 -f mp4 01.mp4
960x640需要自己計算一下,按比例進行調整
按時間截取:
ffmpeg -i 01.rmvb -acodec copy -vcodec libx264 -b 560k -ss 00:00:00 -t 00:01:00 -f mp4 01.mp4
設定B-frame對動畫片有些好處,2pass的時候不是很明顯,1pass的比較明顯:
ffmpeg -i 01.rmvb -acodec copy -vcodec libx264 -b 560k -bf 6 -f mp4 01.mp4