網路影片直播系統的H264格式編碼器的概念是什麼?

雲豹科技阿星發表於2021-01-29

在網路影片直播系統中常見編碼器有H264/H265/VP8/VP9,其中H264和H265用的比較多,VP8和VP9用的比較少,H265的出現雖然時間短,但很多開發公司都一開始嘗試使用H265作為直播編碼的一種方式,但H264依然是主流的一種編碼方式。下面給大家普及一下關於H264格式的知識。

 

在網路影片直播系統中H264格式的編碼器中其實是有兩個層面,一個是VLC影片編碼層,NAL層是網路抽象層,VLC主要任務就是編碼,NAL層是負責格式化資料,而H264的每幀資料就是一個NAL單元,在H264的實際的資料幀中,幀前面會有分隔符來分隔每一幀,一般來說編碼器編出的首幀資料為SPS和PPS,後面就是屬於I幀

 

1、I幀:I幀就是幀內編碼幀,也就是說它的編碼和其他幀的資料沒有關係的,它只是在某一幀內做編碼,也就是說他和單張圖片是類似的,所以說我們只需要用I幀的資料就可以恢復出一個完整的影像。

2、P幀:而P幀需要依賴前一陣的資料來解碼影像,因為它的儲存是與前一幀差別的資料,所以它被稱為前項預測編碼幀。

3、B幀:B幀是前項和後項雙向的預測編碼幀,所以說要解碼B幀的話就需要前一幀和後一幀兩份資料才能夠解碼。

總結來說I幀、P幀、B幀這三種是常見的幀型別,這三種編碼方式是明顯不同的,一個是完全單獨的幀內編碼,而另一個是需要前一幀資料來解碼自己的,B幀則是需要兩邊的資料才能夠解碼自己的。

在網路影片直播系統中這三種解碼方式的不同,可以明顯看出來壓縮比的不同,I幀的壓縮比其實和GPG差不多,壓縮前和壓縮後的比能夠達到7:1,P幀較大一些達到20:1,B幀則能達到50:1。

 

講完了關於“幀”的概念,還有一個GOP概念,指的是兩個I幀之間的影像組,現在有很多SDK都強調秒開,其實就是在服務端或CDN的邊緣去快取這一對GOP,快取後就避免播放端在播放時找不到I幀時等待或回源,回源的意思就是你需要到中心介面找到這個資訊然後再拉流,有了快取的GOP之後,拉流時先播放這組GOP,在網路影片直播系統中就可以給人一種秒開的感覺。

為什麼要快取GOP呢,因為每個播放器播放時對於H264解碼首先需要一個I幀去顯示影像,然後後面的P幀之類的依據I幀前面一幀的資料差,然後才能解碼P幀出來顯示完整影像,有了I幀之後顯示出來速度就很快,給人秒開的感覺,提高網路影片直播系統體驗性。這也是一種比較常見的直播最佳化手段。

以上內容為作者“雲豹短影片嘉興” 原創,未經作者本人同意,禁止轉載,否則將追究相關法律責任


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982461/viewspace-2754452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章