mencoder使用的基本參數

mencoder是linux平臺功能強大的視頻格式轉換工具。爲將“越獄”拷貝到我的手機裏,於是記錄下這些使用的基本參數

mencoder.exe -srate 22050 -vf scale=208:-3 -ofps 12 -oac mp3lame -lameopts mode=3:cbr:br=24 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vhq:vbitrate=112 "需要轉換的視頻文件" -o "輸出的.avi" 2> 2.txt

1、-srate 22050 聲音採樣頻率設置,現爲22K
2、-vf scale=208:-3 寬度爲208,高度自動調整保持比例;-vf scale=-3:176寬度自動調整保持比例,高度爲176;如果想保持原來的大小可以不要這個參數
3、-ofps 12 幀速率設置,現爲12fps
4、-oac mp3lame 音頻採用mp3編碼
5、-lameopts mode=3:cbr:br=24單聲道,音頻碼率爲24kbps;-lameopts mode=0:cbr:br=24立體聲,音頻碼率爲24kbps;
還可設置音量,-lameopts mode=3:cbr:br=32:vol=1,設置範置爲1~10,但不宜設得太高
6、-ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vhq:vbitrate=112採用高質DivX視頻編碼,視頻碼率爲112kbps;
-ovc xvid -xvidencopts bitrate=112採用XviD視頻編碼

附文:
使用mencoder製作pda使用的電影

1 mplayer和mencoder
mplayer 是最爲強大和靈活的多媒體播放器軟件之一,在windows平臺能夠和他相提並論的只有media player classic而已。mencoder是和mplayer共享同樣架構和底層庫的多媒體編碼軟件。這使得mencder有很好的兼容性,和很快的速度。大家只要記住一點:
MPLAYER能夠播放的電影,就能夠通過mencoder編碼。
但反過來,MPLAYER播放有問題的電影,MENCODER也無能爲力。這是mencoder最強的,也是最弱的一點。
注意:在此首先提醒,mplayer和mencoder是基於命令行的軟件,不過對於mencoder來說,常用的參數就那麼幾個,可以用簡單的腳本來驅動。

2 準備工作
作爲典型的unix風格的軟件(也包括他的開放源代碼性質),mplayer不需要運行什麼安裝程序,也不需要系統提供的codec,他的安裝過程可以參考:
http://www5.eastgame.net/index.p ... flat&tid=483408
(不能夠訪問連接的,可以通過訪問TLF論壇--軟件討論版--神乎奇蹟的播放軟體mplayer 找到,這個帖子的名字和點擊量還是相當匹配的)
當按照這篇文章按照以後,能夠正常的使用mplayer播放wmv9,quicktime,和大部分的rm/rmvb時候,代表mplayer和mencoder的配置完成。

3 使用mencoder進行編碼
首先選擇一部avi文件,假設文件名爲src.avi,啓動命令行,運行
mencoder.exe src.avi -o dst.avi -endpos 60 -oac copy -ovc copy
他的含義是截取src.avi的前60秒,並且不通過再編碼,直接輸出爲dst.avi。這時候dst.avi應該是src.avi的前60秒的內容。
這個命令行參數中,有一些需要注意的地方:
1 src.avi 源文件名是src.avi
2 -o dst.avi 編碼輸出的文件名是dst.avi
3 -endpos 60 在第60秒的地方結束編碼,這個位置也可以跟其它的全局參數(任何在mplayer播放時指定的參數,都可以在這個位置給出)
4 -oac 指定音頻編碼方式
5 -ovc 指定視頻編碼格式
無論後面的mencoder參數多麼複雜,都是由這5個部分組成,這點需要牢記。而通過第3點,可以在編碼中延伸出非常多的技巧。

接着,使用更加複雜一些的參數:
mencoder.exe src.avi -o dst.avi -endpos 60 -oac mp3lame -lameopts vbr=3:br=128 -ovc copy
他的含義是截取src.avi的前60秒,視頻不重新編碼,音頻使用lame進行重新編碼,指定vbr編碼方式爲abr,比特率爲128kbps。
命令行的參數:
1 -lameopts 編碼的參數
2 : 各個編碼參數使用":"隔開,並列列出
這一步成功以後,試着對音頻不重新編碼,對視頻重新編碼:
mencoder.exe src.avi -o dst.avi -endpos 60 -vf scale=320:240 -oac copy -ovc xvid -xvidencopts pass=1:bitrate=300
mencoder.exe src.avi -o dst.avi -endpos 60 -vf scale=320:240 -oac copy -ovc xvid -xvidencopts pass=2:bitrate=300
和上一個不同的是,在編碼前視頻被scale成320*240格式,接着使用xvid進行編碼,1pass,bitrate爲300(1 pass的bitrate選項好像無效?),接着使用2pass編碼一遍
如果mencoder報錯誤,首先檢查以上的命令行參數是否正確,特別是空格。

通過以上3步,而且都成功的話,那麼可以實際試驗真正的編碼格式了,我目前使用的參數爲:
mencoder.exe src.avi -o dst.avi -noskip -vf scale=320:240 -oac mp3lame -lameopts vbr=3:br=128 -ovc xvid -xvidencopts pass=1:bitrate=300:keyframe_boost=20:trellis:quant_type=h263
mencoder.exe src.avi -o dst.avi -noskip -vf scale=320:240 -oac mp3lame -lameopts vbr=3:br=128 -ovc xvid -xvidencopts pass=2:bitrate=300:keyframe_boost=20:trellis:quant_type=h263
無論是電影還是動畫,這個參數設置都可以得到非常理想的效果。速度方面,在音頻視頻都重新編碼的情況下,2pass的情況下,在我的C4 2G的機器上,略小於播放時間。我的經驗不足,不然2pass中第一遍pass的速度還可以提高。體積方面,一部127分鐘的dvd光盤編碼後大小爲 340M,一部25分鐘的動畫,編碼後結果在76M左右。
在dell x5(pxa255 300MHZ),使用betaplayer播放,除了偶爾停頓以外,整體相當流暢。

4 一些編碼提示
---對於dvd光盤的轉換,源文件的格式爲 dvd://1 -dvd-device z:/
其中z是dvd光驅號.
---對於源是ac3的音頻,往往比較輕,可以在lameopts中指定vol=n(取值0-10)來提高增益(音量)
--使用-vf scale -zoom -xy 320 可以指定輸出視頻的寬度爲320,由mencoder自行計算合適的高度
--使用-noskip 禁止編碼中跳幀
--使用-ss 00:30 -endpos 60編碼電影中30分鐘開始的60秒內容,在編碼整部電影之前,可以嘗試編碼片斷以看看效果,並且根據結果調整參數
--對於採樣率爲22KHZ的音頻,如果轉換後的音頻存在問題,可以在mencoder參數的第3部分指定-ssrate 44100進行重採樣
--質量優先的情況下,對於源音頻不大於128kbps的,建議保留,大於這個值的,重新編碼爲128kbps
--質量優先的情況下,建議視頻編碼不低於250kbps,300kbps可以得到相當滿意的結果
--質量優先的情況下,建議保留原始的fps

5 存在問題
希望高手多來指點迷津
--外掛字幕問題待研究
--mplayer播放一部分特定特徵的rm文件會崩潰,這些文件沒有辦法通過mencoder編碼
--mplayer播放一部分wmv8電影會出問題,mencoder對這些文件也沒有辦法
--源音頻採樣率22KHZ情況下,mencoder通過lame轉換的音頻會有問題,通過-ssrate可繞開這個問題
--xvid編碼參數的選擇,betaplayer不支持qpel和gmc,其他一些編碼的參數,自己用着合適,沒有更深入的研究
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章