使用mencoder ,最關(guān)鍵的是明白參數(shù)。因為音頻、視頻格式太多,結(jié)果它的參數(shù)也是一大堆一大堆的。這里總結(jié)一下。
0, -vf
設(shè)置輸出文件格式:
默認為avi格式,mencoder的默認格式。
需要其它格式,可以用 lavf
1, -oac
輸出音頻編碼
copy
mp3lame -lameopts aq=7:vbr=2:q=6
q , 質(zhì)量(0 - 最好,9 - 最差)(僅用于VBR)
aq,算法質(zhì)量(0 - 最好/最慢,9 - 最差/最快)
編碼方式包括有abr(按平均碼率編碼)、cbr(指固定碼率編碼)、vbr(按動態(tài)碼率編碼)三種
br=128 則指定編碼碼率為 128kbps。
2, -srate 32000
輸出音頻的采樣率
音頻的采樣頻率。頻率通常有 22050、32000、44100 等幾種。
3,-vf <濾鏡1[=參數(shù)1:參數(shù)2:...],濾鏡2,...>
設(shè)置一連串的視頻濾鏡
scale=320:240
rotate=
mirror
flip
4,-ovc
xvid -xvidencopts fixed_quant=8:bitrate=500 //xvid
lavc -lavcopts vcodec=mpeg2video:vbitrate=500 // mpg2
lavc -lavcopts vcodec=mpeg4:vbitrate=500 // mpg4
x264 -x264encopts bitrate=500 // x264
在 -lavcopts中,主要有這么幾個:
vcodec: 視頻編碼格式
vbitrate: 數(shù)據(jù)比特率
mbd: 宏模塊算法,0-2 , 默認為0, 越大品質(zhì)越好
trell: 量子化網(wǎng)絡(luò)搜索
cbp: 只能與 trell一起使用
dia=4 移動搜索范圍
cmp=3
5,-ofps 30:(output fps)指定輸出媒體文件的幀速,30fps指每秒種播放 30 個畫面
6,
6.1. 選擇編解碼器及容器格式
編碼使用的音頻及視頻編碼器分別通過-oac及-ovc選項指定例如輸入如下命令
mencoder -ovc help
可列出你機器上相應(yīng)版本的MEncoder所支持的所有視頻編碼。下列選擇也是可用的:
音頻編碼器:
音頻編碼器名稱 | 描述 |
---|---|
mp3lame | 通過LAME編碼為VBR,ABR或CBR格式的MP3文件 |
lavc | 利用libavcodec中的一個編碼器 |
faac | FAAC AAC音頻編碼器 |
toolame | MPEG音頻Layer 2編碼器 |
twolame | 基于tooLAME的MPEG音頻Layer 2編碼器 |
pcm | 未壓縮的PCM音頻 |
copy | 不要重新編碼,這是復制已壓縮的各楨 |
是頻編碼器:
是頻編碼器名稱 | 描述 |
---|---|
lavc | 使用libavcodec中的一個是頻編碼器 |
xvid | Xvid, MPEG-4高級簡單格式(ASP)編碼器 |
x264 | x264, MPEG-4高級視頻編碼(AVC), AKA H.264編碼器 |
nuv | nuppel視頻,為一些實時程序所用 |
raw | 未壓縮的視頻楨 |
copy | 不要重新編碼,只是復制已壓縮的各楨 |
frameno | 用于三通道編碼(不推薦) |
輸出容器格式通過-of選項選擇。輸入:
mencoder -of help
以便列出你機器上相應(yīng)版本的MEncoder所支持的所有容器。如下選項也是可用的
容器格式:
容器格式名稱 | 描述 |
---|---|
lavf | 由libavformat 支持的一種容器 |
avi | 音-視頻混合 |
mpeg | MPEG-1及MPEG-2節(jié)目流 |
rawvideo | 原始視頻流(未經(jīng)混合 - 只含一視頻流) |
rawaudio | 原始音頻流(未經(jīng)混合 - 只含一音頻流) |
AVI容器是MEncoder的基本容器格式,也就是說它能夠被最好的處理,MEncoder也是為之而設(shè)計。如上所述,其他容器格式也可被使用,但你使用的時候可能遇到問題。
libavformat容器:
如果你選擇了libavformat來做輸出文件的混編(通過使用-of lavf選項),適當?shù)娜萜鲗⒂晌募䲠U展名而定。你也可以通過libavformat的format選項強制一種容器格式。
libavformat容器名稱 | 描述 |
---|---|
mpg | MPEG-1及MPEG-2節(jié)目流 |
asf | 高級流格式 |
avi | 音-視頻混合 |
wav | 波形音頻 |
swf | Macromedia Flash |
flv | Macromedia Flash視頻 |
rm | RealMedia |
au | SUN AU |
nut | NUT開放容器(實驗中,不兼容標準) |
mov | QuickTime |
mp4 | MPEG-4格式 |
dv | Sony數(shù)字視頻容器 |
如你所見,libavformat允許MEncoder把媒體混合到各種格式的容器內(nèi)。不巧的是,因為MEncoder從開始設(shè)計的時候沒有支持AVI之外的其他容器,你要小心最終生成的文件。請多次檢查以確認音頻/視頻同步是正確的以及文件能在MPlayer之外的播放器中播放。
例 6.1. 編碼為Macromedia Flash格式
生成Macromedia Flash視頻,以便在安裝有Macromedia Flash插件的網(wǎng)頁瀏覽器中播放:
mencoder input.avi -o output.flv -of lavf \ -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
mencoder -ofps 15 -vf-add scale=176:144 -vf-add expand=176:144:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=500:max_bframes=0:quant_type=h263:me_quality=0 -oac lavc -lavcopts acodec=mp2:abitrate=96 "input.avi" -o "output.avi"
參數(shù)詳解: 1、-ofps 15 :幀速率15fps 2、scale=176:144 :圖像原始比例,如4:3/16:9 3、expand=176:144:轉(zhuǎn)換后的分辨率 4、-srate 44100 :聲音采樣率44100Hz 5、-ovc xvid :視頻編碼格式XVID 6、-xvidencopts bitrate=500:視頻編碼率500Kbps 7、max_bframes=0:禁用BFrame 8、quant_type=h263:XVID編碼的量化方式(建議改為mpeg) 9、me_quality=0:VHQ模式參數(shù),動態(tài)搜索精度(6為精度最大值) 10、-lavcopts acodec=mp2:音頻編碼為MP2 11、abitrate=96 :音頻編碼率96Kbps
這樣對于一個15fps視頻最佳參數(shù)為: max_key_interval=150:max_bframes=0:profile=sp3:trellis:chroma_me:chroma_opt:hq_ac:quant_type=h263:me_quality=6:vhq=4 Xvid編碼高級參數(shù): 壓縮過程中的視頻碼率建議不要超過192Kbps(因為對于加入了手動參數(shù)的Xvid編碼器,畫質(zhì)提升是相當明顯的),強烈建議用2-Pass壓縮! 首先介紹一下這些高級參數(shù)的作用: cartoon:卡通模式,非卡通則去掉此參數(shù) vhq=4:VHQ MODE(動態(tài)搜索算法),有0-4五個值,越大畫質(zhì)越好,但是編碼速度越慢 me_quality=6: 動態(tài)搜索精度(6為精度最大值) chroma_me:動態(tài)檢索 ,色彩動態(tài)評估 max_bframes=0 :B幀最大間距,設(shè)為0表示關(guān)閉B幀功能 profile=XXX :小于等于15fps設(shè)置為sp3,大于15fps設(shè)置為asp3 max_key_interval=XXX :最大I幀(關(guān)鍵幀)間隔,一般設(shè)置成幀數(shù)的10倍 Quant_type=mpeg:量化矩陣,Mpeg模式,如果壓縮時去掉這段就默認量化矩陣為H.263 trellis:高質(zhì)量量化模式 GMC:全域動態(tài)補償 qpel:四分之一像素精確動態(tài)補償(如果使用了該功能則可能降低解碼速率,建議不用) bvhq=1:在B幀上啟用VHQ lumi_mask:加大畫面明暗部分壓縮率(一般不用,有時會導致畫面失真) greyscale:使用灰度,但是便出來的畫面是黑白的(一般不使用) interlacing:隔行處理,適用于交錯片源(一般不使用) chroma_opt:色度優(yōu)化 ,色彩最佳化 Quantization量化選項(關(guān)鍵的關(guān)鍵就在這里!)
量化器級別(quantizer level)即Q值越高畫面細節(jié)越豐富,但是在低碼率下越高的量化器級別,會帶來越低的畫面質(zhì)量,Q 值越小,質(zhì)量越好,碼率越大;Q 值越大,質(zhì)量越差,碼率越小。(實際上,它的原始概念更復雜,我們干脆簡單地認為1就是100%原質(zhì)量,31就是1/31的原質(zhì)量好了)。P-frame(即未來單項預(yù)測幀)建議設(shè)置在1--15之間,(它的作用是只儲存與之前一個已解壓畫面的差值。即僅僅描述它與前一幀的區(qū)別)。I-frame(即關(guān)鍵幀)的Q值只用能作用于2pass-second壓制上,在VirtualDub被標示為 [K],關(guān)鍵幀是構(gòu)成一個幀組(GOP,Group of Picture)的第一個幀。I-Frame 保留了一個場景的所有信息(Keyframe原意是指可以單獨解碼、用于同步的frame,不過在MPEG系統(tǒng)中只有I-frame有這個特性,因為BF和PF都是預(yù)測幀,要靠I-Frame來還原)。B-frame(即雙向預(yù)測幀)除了參考之前解壓過了的畫面外,亦會參考后面一幀中的畫面信息。這三個設(shè)置的范圍都是1-31,應(yīng)該注意的是在場景昏暗的條件下不要讓B-frame過低。 min_iquant=1——IF的量化最低值(取值范圍在1-31之間) max_iquant=10——IF的量化最高值(取值范圍在1-31之間) min_pquant=1——PF的量化最低值(取值范圍在1-31之間) max_pquant=10——PF的量化最高值(取值范圍在1-31之間) min_bquant=1——BF的量化最低值(取值范圍在1-31之間) max_bquant=30——BF的量化最低值(取值范圍在1-31之間) -sws 9 取值范圍在(0-9)之間,不同值代表不同的Resize算法!建議用 -sws 9 0 快速二次線性(默認)(速度較快) 1 二次線性 2 二次立方(質(zhì)量很好) 3 實驗中 4 最短距離 (bad quality) 5 區(qū)域 6 亮度二次立方 度二次線性 7 高斯 8 sincR 9 lanczos(速度較快,而且畫面銳利) 10 雙三次樣條曲線 實際應(yīng)用舉例: vhq=4:cartoon:chroma_me:min_iquant=1:chroma_opt:min_iquant=1:max_iquant=12:min_pquant=1:max_pquant=12:bvhq=1:min_bquant=1 添加到WisMencoder的手動參數(shù)中的視頻編碼處,然后再把 -sws 9 參數(shù)添加到視頻濾鏡處即可!記得-sws 9前一定加個空格,要不編碼器不會啟動!當然你也可以自己摸索適合的方案,做出效果更佳的方案!