H.265編碼視頻在web網頁實現無插件播放,應該通過軟解碼還是硬解碼?


目前攝像頭存在H.265和H.264兩種編碼格式,我們的攝像頭已經支持H265編碼視頻的傳輸。H.264編碼格式可以直接在web瀏覽器通過H5來進行視頻解碼來完成播放,但是對於H.265編碼的視頻,無法通過H5直接解碼來進行視頻播放,當前的方案是通過H5調用編解碼組件來進行web直播。

 

 但當前播放的痛點在於:只能使用軟解和單線程來進行視頻播放處理。

我們來測試一下H.265直播流解碼播放。經測試,在 MacBook Pro 2.2GHz Intel Core i7 / 16G 內存筆記本上,使用 Chrome 瀏覽器長時間觀看直播,內存使用量穩定在 270M ~ 320M 之間,CPU 占用率在 40% ~ 50% 之間。由於CPU占用過高,無法滿足可以在同一客戶機下面播放多路視頻的效果。

 

由於客戶端播放H.265編碼視頻受到技術瓶頸限制,現通過服務端將H.265編碼格式轉碼為H.264編碼,統一由服務端來進行視頻處理,客戶端只進行H.264編碼視頻播放。

實現方案

方案1:

直接對H265進行封裝成自定義FLV、RTMP、HLS發布給前端播放,web前端得支持解析H265播放的控件,如果使用這種方案目前基本很難找到適用的開源方案,而且后端和前端的改動可以說基本是推倒重來,所以這種方案在短時間內是很難實現的。

方案2:

做一個轉碼服務對H265進行解碼再編碼成H264,web前端播放方案就無需做任何改動,轉碼的話有軟件轉碼和硬件轉碼兩種方案,軟件轉碼耗CPU資源,還有就是考慮硬件轉碼的方案了,本文下面要介紹的就是硬件轉碼的方案。

實現過程

基於現有的視頻服務框架,在現有的直播中新增轉碼功能,平台統一接入攝像頭,通過拉流判斷接入攝像頭視頻流是否為H.265編碼視頻流。若判定接入視頻流為H.265編碼視頻流,將開啟轉碼服務,對現有的視頻流進行編解碼處理,將視頻轉化為H.264編碼推送給流媒體進行視頻分發。平台也同步添加是否開啟轉碼功能,開啟轉碼功能后的通道設備將會輸出H.264編碼視頻。

目前采用的是CPU的方式來進行視頻轉碼。后續會增加CPU來進行解碼(需要具體關聯到設備的顯卡)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM