視頻直播服務支持輸出RTMP、FLV、HLS、ARTC四種協議
- RTMP
RTMP(Real Time Messaging Protocol,實時消息傳送協議)是Adobe公司為Flash播放器和服務器之間音頻、視頻和數據傳輸開發的開放協議。
RTMP協議比較全能,既可以用來推送,又可以用來直播。其核心理念是將大塊的視頻幀和音頻幀“剁碎”,然后以小數據包的形式在互聯網上進行傳輸,且支持加密,因此隱私性相對比較理想,但拆包組包的過程比較復雜,所以在海量並發時容易出現一些不可預期的穩定性問題。
- FLV
HTTP-FLV協議由Adobe公司主推。
格式極其簡單,只是在大塊的視頻幀和音視頻頭部加入一些標記頭信息,由於這種極致的簡潔,在延遲表現和大規模並發方面都很成熟。唯一的不足就是在手機瀏覽器上的支持非常有限,但是用作手機端App直播協議卻異常合適。
- HLS
HLS是蘋果推出的解決方案。
將視頻分成5秒~10秒的視頻小分片,然后用m3u8索引表進行管理。由於客戶端下載到的視頻都是5秒~10秒的完整數據,故視頻的流暢性很好,但也同樣引入了很大的延遲(HLS的一般延遲在10秒~30秒左右)。相比於FLV、HLS在iPhone和大部分Android手機瀏覽器上的支持非常足,所以常用於QQ和微信朋友圈的URL分享。
- ARTC
ARTC是阿里雲提供的低延遲直播RTS(Real-time Streaming)解決方案使用的協議頭。
該方案參考WebRTC交互方式,采用UDP傳輸協議打造,實現可以承載大規模並發,端到端延時1秒內的低延時直播體驗,同時對交互流程做了秒開優化,以及兼容更多的直播音視頻特性例如AAC解碼、B幀。RTS服務部署於阿里雲直播節點,在接入成本、節點覆蓋、承載能力上實現了平衡,大幅優化直播體驗。
RTMP、HLS、HTTP-FLV、ARTC協議對比
協議類型 | 延時 | 優點 | 缺點 | 特點 | 適合端 | 場景推薦 |
---|---|---|---|---|---|---|
RTMP | 1s~3s | 延時低 |
|
TCP長連接 | PC端 | 實時性要求不高的直播 |
FLV | 1s~3s |
|
需要集成SDK才能播放 | TCP長連接 | PC端 | 實時性要求不高的直播 |
HLS | >10s |
|
延時高 | HTTP短連接 | PC端、移動端 | 實時性要求不高的直播;移動端和H5端 |
ARTC | 1s |
|
H5播放不支持B幀和AAC音頻(可通過阿里雲RTS轉碼功能去除B幀並將音頻轉為Opus) | UDP | PC端、移動端 | 實時性要求高的直播,如電商帶貨、在線教育、社交互動等 |