聊聊視頻中的編解碼器,你所不知道的h264、h265、vp8、vp9和av1編解碼庫

你知道FFmpeg嗎?瞭解過h264/h265/vp8/vp9編解碼庫嗎?

我們日常生活中使用最廣泛的五種視頻編碼:H264(AVC)、H265(HEVC)、vp8、vp9、av1都分別是什麼?由哪些組織/公司實現的?編解碼庫的授權協議都是什麼?他們又分別有什麼優點?
今天就讓博主帶領諸位小夥伴們一起來簡單瞭解一下,視頻中的這幾種常用的編解碼器。

H264(AVC)

最常用的視頻編碼。

H.264在1997年ITU的視頻編碼專家組提出時被稱爲H.26L,在ITU與ISO合作研究後被稱爲MPEG4 Part10或H.264。

雖然上述兩個組織提出了H264編碼規範,但是並沒有具體實現。

openh264

所以我們日常使用的視頻編碼大多由思科(cisco)開源的openh264編解碼庫:
http://www.openh264.org/。

x264

目前性能最好最完善的h264編解碼庫。

由大名鼎鼎的VLC播放器的維護機構,法國videolan開源組織維護的libx264編解碼庫:http://www.videolan.org/developers/x264.html。

videolan開源組織的前身是法國巴黎中央理工學院的一個學生項目。


這也是爲什麼音視頻開發工程師默認會使用VLC播放器來測試音視頻的原因,不僅僅是因爲VLC強大,還因爲VLC播放器就是事實上的h264/h265音視頻編碼的標準實現,如果VLC都播放不了你的視頻,那肯定是你的視頻有問題。

H265(HEVC)

x265

業界最好的h265(hevc)編解碼庫。
同樣由大名鼎鼎的VLC播放器的維護組織法國videolan組織開源的libx265編解碼庫:
https://www.videolan.org/developers/x265.html

使用x264,x265編碼的小夥伴們需要注意這兩款編解碼庫使用GPL v2授權協議,商業軟件使用需要遵守GPL v2協議。

ffmpeg內置openhevc編解碼庫

FFmpeg維護的H265(HEVC)的編解碼庫,能用。
http://openhevc.github.io/openHEVC/

kvazaar

FFmpeg項目引用的另一款開源的H265(HEVC)解碼庫,注意kvazaar解碼庫只提供H265解碼,並不提供編碼。
https://github.com/ultravideo/kvazaar

VP8

VP8google定義並開源的視頻編解碼標準和編解碼庫實現。

Google 收購了On2 Technologies,之後Google開放了其擁有的VP8視頻編碼技術源代碼並免費提供給所有開發者使用,發佈
WebM 開放網絡媒體項目

VP8號稱比H264編碼性能更好,實際上沒那麼誇張,差不多相當於ffmpeg內置默認的openh264編解碼庫。VP8的壓縮實現與H264有點區別就是VP8沒有B幀,而H264有B幀。

VP8的優點是開源,沒有H264/H265的專利版權風險,可以隨便用,除了IE9以下版本的瀏覽器外,現代瀏覽器都支持VP8視頻編碼,當然也支持webm視頻格式。

libvpx

libvpxWebM項目的子庫,可以同時支持VP8VP9視頻編碼:
https://www.linuxfromscratch.org/blfs/view/svn/multimedia/libvpx.html

webP圖片格式的圖像編碼就是使用的VP8編碼進行壓縮的。
WebM視頻的視頻編碼也是採用VP8/VP9編碼。

VP9

VP9也是google開源的用與比拼H265(HEVC)的編解碼器,可以看出google真的很努力的在開源,這種開源的視頻編碼應該多一些,百花齊放才能促進音視頻技術升級。
兼容性方面,除了IE9以下版本的瀏覽器外,現代瀏覽器都支持VP9視頻編碼,當然也支持webm視頻格式。

libvpx

libvpx上面講過了,稍微提一下。是WebM項目的子庫,可以同時支持VP8和VP9視頻編碼:
https://www.linuxfromscratch.org/blfs/view/svn/multimedia/libvpx.html

AV1

重磅壓軸,google最新推出的針對VP9編碼有多項優化後的新的編解碼器:AV1

AV1是Google VP10、Mozilla Daala以及Cisco Thor三款開源編碼項目共同研發成果。AV1打破了之前編碼標準中傳統的二維運動矢量模型的限制,第一次引入了仿射變換運動模型,不僅可以描述平移運動,同時可以更好的表述如旋轉、縮放等更加複雜的運動,有效的提升了視頻編碼效率

在實際測試中,AV1H265(HEVC)壓縮率提升約27%,可以說是力壓H265。是目前爲止,世界上壓縮性能最好的視頻編解碼器。再借用遊戲界的話術來講,那AV1就是“次世代”編解碼器。

得益於AV1的開源和相比於H265更節省帶寬的緣故,目前AV1有超過h265編碼的趨勢,更多視頻平臺和直播平臺選擇使用AV1編碼,而不是H265。

目前使用AV1編碼的主流流媒體平臺有這幾家:“奈飛、YouTube、BBC、愛奇藝”

儘管業界已經喊了4K喊了十多年,但是實際上4K普及率依然並不高,這些年主流的還是H264編碼,尤其是在直播領域,h265編碼基本上沒什麼應用。4K的普及不僅需要視頻編解碼技術的升級,還需要用戶帶寬和其他硬件配置的升級換代。在帶寬費用如此高昂的時代,各大視頻平臺和直播平臺廠商升級意願都不高,但是因爲有了AV1編碼,各大視頻平臺和直播平臺廠商能夠使用AV1編碼帶來更少的帶寬消耗,相信AV1編解碼器的未來會更好。

這裏只介紹FFmpeg內置的兩個av1編解碼器:dav1dlibrav1e

dav1d

FFmpeg和法國videolan開源組織共同維護的dav1d編解碼庫:https://www.videolan.org/projects/dav1d.html。

跟其他videolan維護項目不同的是,dav1d編解碼庫不受專利版權限制。

librav1e

號稱最快的av1解碼器。實際上dav1d和librav1e編解碼器性能差不多,差別不大。
https://github.com/xiph/rav1e

如果覺得博主寫得還不錯,歡迎“關注、點贊、收藏”一鍵三連。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章