HTML5如何實現直播推流?值得學習一下!


自從RTMP推流協議誕生以來,依靠RTMP協議做的推流開發就一直都未停歇,在沒有找到更加完善的替代品前,市面的主流推流仍將會由RTMP協議來實現。如大眾所熟知的一樣,PC端web主流的視頻直播方案也一直是RTMP,包括我們開發的EasyCVR平台,也在最新的版本中支持RTMP推流了,不過該版本目前正在測試當中,測試完畢將會上線,大家屆時可以關注。

我們本文的焦點還是放在HTML5視頻的推流直播上。隨着直播平台爆發式的增長,H5直播的需求也變得異常豐富。通過H5直播的整體流程大致分為三個模塊:

視頻采集:該模塊包括采集電腦上的音視頻設備、手機端攝像頭及麥克風、電視台/比賽現場攝像頭的音視頻等,對於H5的推流直播,采集主要方向還是手機端和電視台的攝像頭音視頻采集。

解碼分發:該模塊主要由視頻流媒體服務器完成,視頻采集后需要一台Nginx服務器來進行處理,采集視頻錄制端傳輸的視頻流(H264/ACC編碼),由服務器端進行解析編碼,推送RTMP/HLS格式視頻流至視頻播放端。

視頻播放:視頻播放在於用戶采用的播放器,包括電腦播放器、手機播放器以及H5的video標簽。

 

 

而對於PC端H5的視頻錄制,可以選取更加具有優勢的webrtc技術,使用WebRTC錄制視頻基本流程簡單梳理下:

1、調用window.navigator.webkitGetUserMedia(),獲取用戶的PC攝像頭視頻數據。

2、將獲取到視頻流數據轉換成window.webkitRTCPeerConnection(一種視頻流數據格式)。

3、利用 WebScoket將視頻流數據傳輸到服務端。

 

 

視頻錄制完畢后,則需要一套RTMP直播流服務來保證視頻流的傳輸,同時還要具備轉換直播流格式以及編碼推流的功能,當服務器端接收到采集視頻錄制端傳輸過來的視頻流時,需要對其進行解析編碼,推送RTMP/HLS格式視頻流至視頻播放端。

之前我們也說過,獲得一套流媒體服務平台有多種方式,包括自己從零搭建、用開源平台做基礎架構進行修改、直接找尋靠譜的第三方機構獲取平台,自己搭建平台費時費力,因此比較推薦的是通過開源平台或直接找服務商完成。

 

 

TSINGSEE青犀視頻具備獨立的EasyDarwin開源平台,能夠協助開發者輕松搭建流媒體服務,目前EasyDarwin平台有穩定的運行環境以及專業的技術支持,這兩個優勢都是用戶使用過程中強大的后盾。同時我們還有EasyDSS這樣的RTMP直播點播平台,安裝部署后也可以實現視頻流的H5推流直播,並且作為一個開放的商用流媒體解決方案,EasyDSS也具備非常豐富的二次開發接口,可以很簡單的進行二次開發和應用。

 

 

 


免責聲明!

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



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