Dbeafb2e1fee97aab409889d236cf244 在視訊編碼的領域中,H.264 是大家比較常聽到的名詞,而另一個正在發展中的 VP8 技術也不容小看,而且有 Google 的加持。所以小編在研究完 VP8 的技術之後,也實際動手測試了 VP8 的編碼效果,發現它和 H.264 比較起來,不但不會落於人後,在低流量的應用上,還可以壓制 H.264。

編碼請用libvpx

筆者找了很多轉檔軟體來測試VP8的編碼效果,不過都找不到滿意的方案,轉出來的影片效果都不是很好,因此還是以libvpx編碼器進行轉檔,雖然它轉出來的效果很不錯,但是麻煩的是,它沒有圖形化介面,因此需要透過指令列(command line,也就是命令提示字元)操作。

讀者可以在http://ffmpeg.zeranoe.com/builds/這邊找到最新的ffmpeg程式,下載後在解開壓縮檔中bin資料夾中的ffmpeg.exe,然後以指令列進行操作。首先必需在指令列終端機中,切換到ffmpeg.exe所在的資料夾位置,然後以輸入參數的方式,控制轉檔時的相關設定。

編碼參數範例

筆者在這邊以固定品質編碼為範例,它可以在較短的編碼時間中,獲得較佳的畫質,但是它的問題是無法確認轉出影片的檔案大小,從筆者的經驗來看很少發生影片爆肥的情況,所以筆者還是推薦這種編碼方式。

固定品質參數範例

ffmpeg.exe -y -i "C:\Movie\Input.mkv" -f webm -codec:v libvpx  -crf 20 –v:b 60000k  -quality best -codec:a libvorbis -b:a 128k  "C:\Movie\Output.webm"

在參數中Input與Output是輸入、輸出檔案的位置及名稱,讀者可自行更改引號中的路徑,-f webm代表使用webm封裝,-codec:v libvpx、-codec:a libvorbis分別表示以libvpx、libvorbis做為影音編碼格式。

控制影片的重要參數是「-crf 20 –v:b 60000k」這段文字,前方的crf代表品質參數,數字越小品質越好,推薦設在20到25之間。v:b在這邊則代表視訊最大資料流量,因為crf參數可以發揮控制流量的效果,所以筆者建議不要在v:b中再次限制資料流量,因此可將此參數設一極大數值,讓它不會影響編碼即可。-b:a則是音訊資料流量,若無特殊需求,128~196是可以兼顧品質與檔案大小的選擇。

品質足以取代H.264

在實際測試時,筆者以libvpx以及x264編碼器,分別將1080p的片源,轉成流量為3500kbps的1080p影片,以及流量為500kbps、解析度為960 x 544影片,分別測試在一般及低流量下的編碼表現。

▲在這一組圖中,可以看到VP8的圖像只是稍微模糊,但是H.264的圖像已經完全「馬賽克化」了。

▲這次VP8更厲害了,畫面十分正確且清晰,H.264在右上角不但出現圖像錯誤,馬賽克情況也頗嚴重。

筆者之所以不使用固定品質壓製影片,其主要的考量是因為無法確認2種編碼器,在相同的定品質參數下,是否能夠壓出品質一樣的影片,因此還是以變動流量方式進行測試。結果很明顯地,VP8在低流量時可以把H.264打得滿地找牙,然而在高流量時差距就沒有那麼大了。在此只刊出低流量測試圖片,完整圖片請至 http://pcadv.in/IsYlf0 下載。

延伸閱讀:

Google WebP 圖片新進展:無失真壓縮、去背透明、動畫

影片壓縮方式大比拼,為什麼壓成 VBR 會更好?

DVD 8片變1片:簡單工具、高品質進階技巧實作給你看

10款影音免費軟體,播放、轉檔、剪輯、燒錄通通有

DVD壓縮燒,兩片變一片

從PC到行動裝置,6款免費影片轉檔工具評比、實測

使用 Facebook 留言

91ca30d48bc987a55ff5a778079e26ab?size=48&default=wavatar
1.  疑惑 (發表於 2012年6月05日 18:25)
筆者在這邊以固定品質編碼為範例,....,所以筆者還是推薦這種編碼方式。

筆者之所以不使用固定品質壓製影片,...

-------------------
那“筆者”是推薦固定品質編碼但自己卻不使用固定品質編碼來壓製影片嗎?
國寶大師 李文恩
3.  國寶大師 李文恩 (發表於 2012年6月05日 21:48)
※ 引述《疑惑》的留言:
> 筆者在這邊以固定品質編碼為範例,....,所以筆者還是推薦這種編碼方式。
>
> 筆者之所以不使用固定品質壓製影片,...
>
> -------------------
> 那“筆者”是推薦固定品質編碼但自己卻不使用固定品質編碼來壓製影片嗎?

文中有說明

筆者之所以不使用固定品質壓製影片,其主要的考量是因為無法確認2種編碼器,在相同的定品質參數下,是否能夠壓出品質一樣的影片,因此還是以變動流量方式進行測試。

謝謝
A9464f64a81ade823c8622923f07b402?size=48&default=wavatar
4.  疑惑 (發表於 2012年6月05日 22:17)
如果無法確認的話,是不是應該就用固定品質壓一次來比較才比較有意義?
Cc71a7e0c2171af5a740610cd0d6f40d?size=48&default=wavatar
5.  zzz (發表於 2012年6月06日 01:04)
※ 引述《疑惑》的留言:
> 如果無法確認的話,是不是應該就用固定品質壓一次來比較才比較有意義?

固定品質就代表流量不固定,
這樣就不能比出「特定流量時何者較佳」。
B3b42315af060ac3c7a533ded7804112?size=48&default=wavatar
6.  (⊙ˍ⊙) (發表於 2012年6月06日 08:50)
VP8和H.264的比較
http://compression.ru/video/codec_comparison/h264_2010/appendixes.html#Appendix_8

轉載 Wiki {
根據 MSU Graphics & Media Lab 在2011年5月的測試,VP8 需要約213%的資料量,才能達到和 H.264 相同的影像品質。

x264 的開發者之一:Jason Garrett-Glaser,給了一些針對 VP8 的評論,他認為 VP8 目前並沒有實現真正的位元流規範,而且在一些編碼的技術上有所欠缺。
}

我很好奇是不是T客邦不會用 x264,只設個很糟的參數,然後得到完全相反的結論?
國寶大師 李文恩
7.  國寶大師 李文恩 (發表於 2012年6月06日 22:51)
基本上VP8的設計目標是在低流量的應用(比如網路串流),因此它會有許多犧牲畫質以換取流量的做法。
在低畫質的設定中,VP8可以和x264抗衡是能夠預期的,但是在高畫質應用中,可能就無法達到這樣的效果。

在者,VP8直到2012年2月才發表1.00穩定版本,在先前的版本應該都是Alpha或Bata版,在那個時間點的測試,或許也無法完整呈現正式版的狀況。

如果讀者有興趣,筆者可以在接下來的技研堂單元中,測試兩者在高畫質情況的表現。
B3b42315af060ac3c7a533ded7804112?size=48&default=wavatar
8.  (⊙ˍ⊙) (發表於 2012年6月09日 19:21)
如果T客邦有下一個測試,就需要更嚴謹點
不管什麼實驗,都一定會有設置對照組
測試影片編碼,也請一併放上沒壓縮的原圖,如果有量化的數據(PSNR)就更好了。I, B, P frame 也要分別比較,因為有些編碼在 I, B 很強,P 偏弱;有些則相反。
若只隨便挑一兩張 frames 就得到某一個打趴另一個的結論,未免貽笑大方.

發表回應

謹慎發言,尊重彼此。按此展開留言規則