當前位置:首頁 > 安卓源碼 > 技術博客 >

基于HTML5的網絡直播方案及相關技術介紹

時間:2020-02-27 16:13 來源:互聯網 作者:源碼搜藏 瀏覽: 收藏 挑錯 推薦 打印

直播發展如火如荼,為了滿足火熱的移動Web端直播需求,一系列基于HTML5的網絡直播方案迅速的發展了起來。其實只要實現了直播的各個技術難點,通過HTML5進行視頻直播并非難事。 常見的可用于HTML5的直播技術共有3種協議:HLS、WebSocket與WebRTC。本文將對基

直播發展如火如荼,為了滿足火熱的移動Web端直播需求,一系列基于HTML5的網絡直播方案迅速的發展了起來。其實只要實現了直播的各個技術難點,通過HTML5進行視頻直播并非難事。
常見的可用于HTML5的直播技術共有3種協議:HLS、WebSocket與WebRTC。本文將對基于這3種協議的HTML5網絡直播方案實現做下基礎的介紹。
一. HLS
優點:CDN支持比較好。
缺點:延時較高,無法進行互動直播。
HLS是一個由蘋果公司提出的基于HTTP的流媒體網絡傳輸協議,是蘋果公司QuickTime X和iPhone軟件系統的一部分。它的工作原理是把整個流分成一個個小的基于HTTP的文件,每次只下載一些。當媒體流正在播放時,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應不同的數據速率。在開始一個流媒體會話時,客戶端會下載一個包含元數據的extended M3U (m3u8)playlist文件,用于尋找可用的媒體流。
用HLS協議實現直播的延時比較高,是因為每一小段的視頻文件都需要延遲時間比如文件列表里面包含5個TS文件,每個TS文件包含5秒視頻,那么整體的延遲就是25秒。
當然也可以縮短列表的長度和單個TS文件的大小來降低延遲,甚至可以縮減列表長度為1,TS視頻時長為1s。但是這樣設置無疑會增加請求次數,服務器壓力自然也會增大,而且當網速慢時這樣的設置會造成更多的緩沖。蘋果官方推薦的TS時長是10s,這樣就會大約有30s的延遲。
二. WebSocket+MSE
優點:實時性比較好,可以用于互動直播,前端可操作性更大。
缺點:技術較新,一些舊瀏覽器不支持。

  1. WebSocket
    通常的Web應用都是圍繞著HTTP的請求/響應模式而構建的。所有的HTTP通信都是通過客戶端來控制的,都是由客戶端向服務器發出一個請求,服務器接收和處理完畢后再返回結果給客戶端,客戶端再將數據展現出來。這種模式不能滿足實時應用的需求,于是出現了SSE,Comet等“服務器推”的長連接技術。

WebSocket是直接基于TCP連接之上的通信協議,可以在單個TCP連接上進行全雙工的通信。WebSocket是獨立的創建在TCP上的協議,HTTP協議中的那些概念都不復存在,和HTTP的唯一關聯是使用HTTP協議的101狀態碼進行協議切換,使用的TCP端口是80,可以用于繞過大多數防火墻的限制。

  1. MSE
    MSE是一個主流瀏覽器支持的新的Web API。MSE是一個W3C標準,允許Java動態的構建和 的媒體流。它定義了對象,允許Java傳輸媒體流片段到一個HTMLMediaElement。

通過使用MSE,你可以動態地修改媒體流而不需要任何的插件。這讓前端Java可以做更多的事情,我們可以在Java進行轉封裝,處理,甚至轉碼。
三. WebRTC
優點:實時性好,延時低,基于UDP協議。
缺點:缺少成熟的開源中轉服務器方案。
WebRTC,網頁即時通信,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的API。它于2011年6月1日開源并在Google、Mozilla、Opera支持下被納入萬維網聯盟的W3C推薦標準。
WebRTC 涉及到很多復雜技術,不過好在大多數復雜工作可以抽象成為下面三個 API:
MediaStream:獲取音頻和視頻流;
RTCPeerConnection:用來建立和維護端到端連接,提供高效的音視頻流傳輸;
RTCDataChannel:用于支持端到端的任意應用數據交換。
這里的MediaStream對應的是JS里的navigator.getUserMedia() 方法,它負責從底層平臺獲取音視頻流。音視頻流經過WebRTC音視頻引擎的自動優化、編碼和解碼,可以直接讀取或者傳輸到各種目的地。比如,我們可以用getUserMedia獲取視頻流,再把每一幀都轉成ASCII字符播放。MediaStream這個API設計得很簡單,使用起來也很方便。
以上就是三種基于HTML5的網絡直播方案中的常用協議,實現難度依次遞增,當然,用戶體驗也依次遞增。

基于HTML5的網絡直播方案及相關技術介紹 轉載http://www.hxslwl.com/appboke/44460.html

技術博客閱讀排行

最新文章

久久人人97超碰人人澡,久久人人97超碰人人澡苹果,久久人人97超碰