安防互聯網直播服務中爲什麼HTML5目前還沒有實時的低延遲視頻流協議?

我們最常見的流媒體協議的RTMP協議,在網絡和硬件正常好的情況下,延遲可以達到1-3s左右,它也是目前主流視頻直播中最常見的協議,像我們的安防流媒體服務器也支持這種協議的視頻流輸出。

爲什麼到現在還沒有 HTML5 上的實時(延遲 < 3s)視頻流協議?理論上利用 websocket + AVC TS 是可以實現的,但是正常總會遇到很多現實的問題。

在h5頁面中,如果要用RTMP或HTTP-FLV,需要基於瀏覽器開發插件,然而瀏覽器有很多種,同時,基於別人的瀏覽器做插件,基本是不可能的。蘋果公司開放了HLS協議,這種協議在h5中不需要插件即可進行播放,解決了在h5頁面中直播的問題。

然而,對於直播來說,HLS協議還是存在很多問題:

1、播放時需要多次請求,對於網絡質量的要求更高
2、延遲在10s左右
3、同時還存在延時累積,比如一分鐘內的延遲有5s,看了10分鐘後,延遲可能會達到50s
4、只能支持拉流,不支持推流

H5中播放直播的場景主要是,以ios、安卓爲主要平臺,分享到第三方應用中,通過hls協議拉流,來爲app引流。此外,要想做到HLS小於3秒的延時,理論上是可以的,這需要看你ts分片的大小,和一個m3u8存儲多少個ts的分片的索引。

如果一個m3u8存儲6個ts的分片索引,每個分片爲5s,那麼就起碼有30s的延時。只要把分片的時長減少,比如減少到250ms每個分片,一個m3u8只存儲一個ts分片,那麼理論延時就只有250ms。但是這樣的話,每秒鐘至少有4次的HTTP請求,並且因爲每一個ts分片都有I幀,大大增大了需要傳送的帶寬。

會給服務器帶來很多壓力,也會增加流量上的消耗,所以總體上很難有兼顧帶寬,延時和減輕服務器壓力的HLS方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章