?

原來用Mencoder壓縮Xvid的AVI都是使用Xvid編碼器的默認設置,現在我來給大家沖沖電,講解一下怎樣使用Mencoder命令行高級參數制作Xvid編碼格式AVI影片。經過測試,可以毫不夸張的說:在減小50%的文件體積同時能夠保持原有畫質!
大家平時用WisMencoder壓縮電影的時候也許會感覺到雖然它速度飛快,但是關于Xvid編碼器的設置卻少得可憐!并沒有完全發揮出Xvid編碼的優勢!
首先介紹一下這些高級參數的作用:
cartoon——卡通模式
vhq=4——VHQ MODE,有0-4五個值,越大畫質越好,但是編碼速度越慢
chroma_me——動態檢索
max_key_interval——最大關鍵幀距離
Quant_type=mpeg——量化矩陣,Mpeg模式,如果壓縮時去掉這段就默認量化矩陣為H.263
trellis——高質量量化模式
GMC——全域動態補償
qpel——四分之一像素精確動態補償(如果使用了該功能則可能降低解碼速率,建議不用)
bvhq=1——在B幀上啟用VHQ
lumi_mask——加大畫面明暗部分壓縮率(一般不用,有時會導致畫面失真)
greyscale——使用灰度,但是便出來的畫面是黑白的(一般不使用)
interlacing——隔行處理,適用于交錯片源(一般不使用)
chroma_opt——色度優化
Quantization量化選項(關鍵的關鍵就在這里!)
量化器級別(quantizer level)即Q值越高畫面細節越豐富,但是在低碼率下越高的量化器級別,會帶來越低的畫面質量,Q 值越小,質量越好,碼率越大;Q 值越大,質量越差,碼率越小。(實際上,它的原始概念更復雜,我們干脆簡單地認為1就是100%原質量,31就是1/31的原質量好了)。P-frame(即未來單項預測幀)建議設置在1--15之間,(它的作用是只儲存與之前一個已解壓畫面的差值。即僅僅描述它與前一幀的區別)。I -frame(即關鍵幀)的Q值只用能作用于2pass-second壓制上,在VirtualDub被標示為 [K],關鍵幀是構成一個幀組(GOP, Group of Picture)的第一個幀。I-Frame 保留了一個場景的所有信息(Keyframe原意是指可以單獨解碼、用于同步的 frame,不過在MPEG系統中只有I-frame有這個特性,因為BF和PF都是預測幀,要靠I-Frame來還原)。B-frame(即雙向預測幀)除了參考之前解壓過了的畫面外,亦會參考后面一幀中的畫面信息。這三個設置的范圍都是1-31,應該注意的是在場景昏暗的條件下不要讓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?????????????????? 二次立方(質量很好)
3?????????????????? 實驗中
4?????????????????? 最短距離 (bad quality)
5?????????????????? 區域
6?????????????????? 亮度二次立方 度二次線性
7?????????????????? 高斯
8?????????????????? sincR
9?????????????????? lanczos(速度較快,而且畫面銳利)
10?????????????????? 雙三次樣條曲線
把
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的手動參數中的視頻編碼處,如本樓底部圖片:
然后再把 -sws 9 參數添加到視頻濾鏡處即可!記得-sws 9前一定加個空格,要不編碼器不會啟動!
當然你也可以自己摸索適合的方案,做出效果更佳的方案!
Xvid大概介紹:(個人認為XVID編碼比DIVX編碼的畫質更好,故只講XVID的參數。了解以下內容對轉換影片有一定幫助,尤其是要放在硬盤上用PC觀看的視頻,當然對轉換成手機觀看的影片也是有好處的,使你不至于盲目的轉換)
???????????????????????????? (此文是參照電腦雜志上的介紹而寫,在此感謝寫出那篇文章的作者。所涉及到的圖片是自己抓的,文字也是一個一個字打出來的,并非從網上轉抄,我無非是想讓有興趣于此道的朋友更多的了解xvid這個編碼器)
如果在網頁上看不太清楚的圖片,請下載到個人電腦上查看
xvid有兩種編碼方式:single pass和twopass
single pass模式編碼簡單,速度也快,但最終效果不如twopass。
twopass就是視頻壓制需要經過兩次編碼,分別為twopass-1st pass(簡稱1pass)和twopass-2nd pass(簡稱2pass)
1pass時,編碼器會用最高質量編碼采集可供第2次運算參考的畫面信息,而在2 pass時。編碼器會根據第一次壓縮獲得的信息和用戶指定的文件大小,自動分配比特率,使需要高流量的運動畫面分配到更多的空間,更高的比特率來保證畫面質量。相對的,對于那些不包含太多運動信息的靜態畫面則用較低的比特率。追求畫質的朋友當然會選擇這種方式,但運算比single pass更費時。
接下來介紹一些基本概念:
Q值——量化值,它被用來描述1幀的質量,每幀都有一個Q值,取值范圍在1-31之間。Q值越小,畫質越好,比特率越大
I-frame——關鍵幀,常被縮寫為IF。關鍵幀是構成一個幀組的第一幀。IF保留了一個場景的所有信息
P-frame——未來單項預測幀,縮寫為PF,只儲存與之前一個已解壓畫面的差值
B-frame——雙向預測幀,縮寫為BF,除了參考之前解壓的畫面以外,也會參考后一幀的畫面信息

第一步:Profile@Level(框架級別)設置
選擇Profile@Level旁的more按鈕來進行框架設置。Profile@Level里方案的層級越低,編碼的比特率及分辨率限制的越多。在制作 DVDrip時一般選擇AS@L5或者unrestricted(不限定比特率,讓編碼器自行分配)。我在制作手機影片時通常選用AS@L5,因為可選擇的方案更多,而且比特率可自己隨意調節,只要手機能跑的動就行!!
(注意:在single pass模式下,Profile@Level的設定無效,由編碼器自行分配比特率)

第二步:Encoding type(編碼類型)設置?????????? (這里是重中之重)
第1種方式:
single pass,求快可以用這種一次性編碼來壓縮視頻。但因為每幀的壓縮率相同,流量自行分配,所以壓縮后的視頻容量無法控制。 single pass有Target quantizer和Target bitrate兩種模式,在主界面的Encoding type里先選擇 single pass,再點擊左下方的Target XXX按鈕在兩種模式中進行切換
名詞解釋:
Target bitrate——目標比特率模式。選擇平均比特率編碼,相對容易控制文件大小。
Target quantizer——目標Q值模式,采用動態比特率編碼。設置為“1”是最高質量,31是最低質量。設置為2是容量與效果的最佳比,但文件體積很大,可以設置小一點的數值,例如2.5,如果不確定,可以按主界面上的“calc”按鈕計算目標容量大小(詳細的計算方法請看下一節)


如何用calc計算容量:
Target size:目標容量的大小,舉例來說,如果我們想將視頻容量控制在1CD以內,由于1M等于1024KB,所以其值不能高于716800KB。
subtitles:選擇此項能將外掛字幕的大小納入計算
container:按照你想制作的最終視頻格式選擇
video:設定視頻長度及fps
Audio:設定音頻格式

第2種方式:
為了保證視頻的質量,很多時候我們會選擇twopass模式來壓縮視頻
step 1:
在主窗口的“Encoding type”下拉菜單中選擇1pass模式,再點擊旁邊的more按鈕。在彈出的窗口中勾選 “Discard first pass”(不輸出第一次運算結果)否則可能生成一個高達幾GB的無用文件。 “full quality first pass”是指優質進行1pass,通常這是沒必要的,這樣反而會降低1pass的編碼速度


step 2:
再返回到主窗口,在“Encoding type”下拉菜單中選擇2pass模式,點擊旁邊的more按鈕進行設置。
首先點擊“stats filename”這一欄的按鈕,選擇在1pass編碼時生成的*.pass文件。
其余講解請看圖


以上介紹了兩種編碼方式,現在講一下視頻的優化:
01.Advanced Options:
Motion search Precision(運動檢索精確度):設定運動檢測的精密度,數值越高,文件轉換時間越長,建議選用“6-ultra High”
VHQ mode(VHQ模式):根據人類視覺特性進行建模,可以使肉眼可分辨的區域壓縮的好一點,從而提升肉眼所見部分的視頻質量。若想效率與質量兼顧,可以將VHQ設置為1,若想求得最佳畫質則可以將VHQ設置為4
Use VHQ for bframes too:對BF也使用VHQ模式
Use chroma motion:使用chroma(色度)信息來動態計算,雖然會增加編碼時間,但可以有效地防止色塊和亮塊,建議選擇
Turbo:開啟BF時可以提高編碼速度,但會降低一點畫質,不建議選取
Frame drop ratio(丟幀率):保持為0,因為我們希望每一幀都被編碼
Maximum I-frame interval:最大IF幀距,一般為幀率的10倍。例如一段視頻的幀率為24,則該處就填寫240,最好是維持為240,這樣可確保每240幀就會有一個IF。如果場景變換偵測出需要插入IF的幀數小于這個值的話,它就會重新計算

02.Quantization(量化)設置:
設定IF/PF/BF最小及最大Q值,從XVID1.1開始,它的流量控制做的很好,在比特率足夠的情形下,不會出現過高的Q值,保持默認可防止目標容量超出或者小于設置的情況。但在single pass模式下設定Q值是無效的
Trellis quantization:在2pass模式下可以提升畫質,但在single pass模式則會使畫質有一些下降,容量也有所減少

03.Debug設置:
Performance optimizations:性能優化,可以選擇特定的cpu指令集優化,建議選擇第一項
Fourcc used:默認值是xvid,改變此設定可以讓你使用divx等其他播放filter來播放,但有時會不兼容,建議不修改此項設置

04.Zone options設置:
zone其實就是將影片劃分為幾段,分別為這些片斷定制一些設置(此項設置用于轉換pc上觀看的影片較多,在此不作細講)
小提示:如果在片頭之類非重要片段使用Quantizer模式,應該在1pass中也使用相同的設置。而若要用Weight模式則只需要在2pass中設置即可

至此,xvid的參數設置已講解完了,有興趣于此道的朋友可以多作嘗試,找出適合你的具體參數。
我先獻丑了,把自己的參數設置提供給大家
手機機型:QD
片源:一般都是網上下載的AVI文件
轉換軟件:TMPGEnc3XP
視頻編碼器:xvid
編碼參數:幀率:15fps?? ,碼率:128-160kbps(動畫片的碼率有時更小) 編碼方式:single pass(上傳到論壇的視頻都是用的 single pass,主要是為了節省時間,而且手機不能支持較高的碼率,故個人感覺在此single pass和twopass差別不大。如果用于 pc上,還是建議用twopass) 其余的設置均是參照上文
音頻編碼:MPEG Layer-3???????? 32000hz?? ,48kbps?? CBR?? ,Mono
濾鏡:只在加字幕文件的時候用到,一般是制作的SRT字幕,濾鏡是Text Sub2.23
如果有朋友經常用DIVX編碼,請發個帖子作一下詳細的介紹,大家交流一下經驗!!!