H265视频转码H264视频
LiveMedia視頻平臺提供H5網頁web前端無插件視頻碼流,但目前主流瀏覽器和播放器都只支持H264的碼流,但是隨著編碼技術的迭代,目前H265編碼的視頻已在安防行業得到了廣泛的使用,平臺僅支持H264需要客戶修改前端的視頻編碼,這樣會造成存儲和帶寬的浪費和壓力,在此技術和應用背景下,平臺兼容H265勢在必行。平臺端兼容H265有以下幾種方案可選:
方案一:平臺支持H265視頻轉發,由web前端做H265解碼顯示
方案二:平臺將H265視頻在后臺做轉碼成H264后,再轉發至web前端進行顯示
采用方案一需要開發支持H265的基于WASM視頻播放器,對技術門檻要求有點高,另外跨平臺視頻播放、小程序播放還需另外開發,綜合考慮,最終我們選擇了方案二,這樣客戶不需要修改原有的代碼就能實現視頻播放。
在介紹LiveMedia后臺對H265視頻進行轉碼,先普及下視頻轉碼的知識
1、軟編碼和硬編碼如何區分
軟編碼:使用CPU進行編碼
硬編碼:使用非CPU進行編碼,如顯卡GPU、專用的DSP、FPGA芯片等
2、軟編碼和硬編碼比較
軟編碼:實現直接、簡單,參數調整方便,升級易,但CPU負載重,性能較硬編碼低,低碼率下質量通常比硬編碼要好一點。
硬編碼:性能高,低碼率下通常質量低于軟編碼器,但部分產品在GPU硬件平臺移植了優秀的軟編碼算法(如X264)的,質量基本等同于軟編碼。
3、目前的主流GPU加速平臺
NVIDIA、INTEL、AMD等
4、目前主流的GPU平臺開發框架
CUDA:NVIDIA的封閉編程框架,通過框架可以調用GPU計算資源
AMD APP:AMD為自己的GPU提出的一套通用并行編程框架,標準開放,通過在CPU、GPU同時支持OpenCL框架,進行計算力融合。
OpenCL:開放計算語言,為異構平臺編寫程序的該框架,異構平臺可包含CPU、GPU以及其他計算處理器,目標是使相同的運算能支持不同平臺硬件加速。
Inel QuickSync:集成于Intel顯卡中的專用視頻編解碼模塊。
LiveMedia平臺后臺視頻轉碼采用NVIDA GPU加速平臺,支持軟/硬解碼兼容,在GPU富足的情況下,優先使用硬解碼。
在確定了GPU平臺后,需要搭建開發和運行環境(NVIDIA 驅動安裝和CUDA開發包安裝就不綴述了,CSDN上博客很多),如有需要的小伙伴們可以留言。
在使用NVIDIA GPU做轉碼時需要根據官方提供的開發文檔和產品詳細配置,有些產品是不帶H265解碼核心的,詳細的見圖(從NVIDIA網站上截取部分),僅供參考
詳情請參考NVIDIA官方說明Video Encode and Decode GPU Support Matrix [NEW] | NVIDIA Developer
另外就是對NVIDIA對游戲(消費級)顯卡做了編碼會話數量限制,開發時可以使用游戲顯卡測試,但是實際上線部署還是應該采購專業顯卡,避免踩坑!
注:開源網站(github)上有如何繞開會話限制的攻略,有興趣的小伙伴可以去嘗試。
微信:
網址:www.houhangkeji.com
QQ技術交流群:698793654
總結
以上是生活随笔為你收集整理的H265视频转码H264视频的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2888):如何短时间内实现v
- 下一篇: [css] 说说position的abs