直播http-flv原理
注:本文轉自https://blog.csdn.net/ahoustep/article/details/52175732
最近打算直播上http-flv,之前用的是rtmp和hls。為什么使用http-flv,它有什么優缺點?
怎么讓流媒體服務器支持flv直播?
一、市場上哪家直播使用了http-flv:
通過抓包分析: 優酷的pc網頁直播使用了http-flv。
斗魚、熊貓tv、虎牙pc網頁上的也使用了http-flv。
二、http-flv、rtmp和hls直播的優缺點:
A、三者的延遲性:
http-flv:低延遲,內容延遲可以做到2-5秒。
Rtmp:低延遲,內容延遲可以做到2-5秒。
Hls::延遲較高。
B、三者的易用性:
rtmp和http-flv:播放端安裝率高。只要瀏覽器支持FlashPlayer就能非常簡易的播放。
hls:最大的優點:HTML5可以直接打開播放;這個意味著可以把一個直播鏈接通過微信
等轉發分享,不需要安裝任何獨立的APP,有瀏覽器即可。
C、rtmp和http-flv比較:
(1) 穿墻:很多防火墻會墻掉RTMP,但是不會墻HTTP,因此HTTP FLV出現奇怪問題的概率很小。
(2) 調度:RTMP也有個302,可惜是播放器as中支持的,HTTP FLV流就支持302方便CDN糾正DNS的錯誤。
(3) 容錯:SRS的HTTP FLV回源時可以回多個,和RTMP一樣,可以支持多級熱備。
(4) 簡單:FLV是最簡單的流媒體封裝,HTTP是最廣泛的協議,這兩個組合在一起維護性更高,比RTMP簡單多了。
三、http-flv技術實現:
HTTP協議中有個約定:content-length字段,http的body部分的長度
服務器回復http請求的時候如果有這個字段,客戶端就接收這個長度的數據然后就認為數據傳輸完成了,
如果服務器回復http請求中沒有這個字段,客戶端就一直接收數據,直到服務器跟客戶端的socket連接斷開。
http-flv直播就是利用第二個原理,服務器回復客戶端請求的時候不加content-length字段,在回復了http
內容之后,緊接著發送flv數據,客戶端就一直接收數據了。
四、使用和測試http-flv:
使用開源的SRS服務器,SRS2.0版本是開源,后續的版本已經閉源。
推流端以rtmp的形式推流到srs服務器,srs再把rtmp流轉換成http-flv流。
請求SRS返回的是:
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Type: video/x-flv
Server: SRS/2.0.205
Transfer-Encoding: chunked
請求某個電視臺http://fms.cntv.lxdns.com/live/flv/channel2.flv,返回的是:
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: video/x-flv
Expires: -1
總結
以上是生活随笔為你收集整理的直播http-flv原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用预计算实时全局光照优化照明-设置场景
- 下一篇: DB2 SQLCODE 异常大全编辑(四