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

eguid發表於2022-03-16

你知道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

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

相關文章