日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

直播未来属于RTMP还是HTTP?

發布時間:2024/2/28 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 直播未来属于RTMP还是HTTP? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直播未來屬于RTMP還是HTTP?

HTTP 傳視頻比 RTMP 實現起來簡單?HTTP 延遲太高?

答:直播通訊未來是屬于html5的。

?

1,協議使用份額

如今國內90%的面向大眾的直播平臺都是采用的rtmp和httpflv的混合,hls很少,而國外大部分采用的dash,少部分用hls和其他協議。

2,先簡單的描述下這些協議

httpflv:這種直播傳輸實際上就是利用的flv文件的特點,只需要一個matedata和音視頻各自header,后面的音視頻數據就可以隨意按照時間戳傳輸,當然視頻得按照gop段來傳輸,這種直播數據實際上就是一個無限大的http傳輸的flv文件,視頻地址類似:

http://mywebsite.com/live.flv,客戶端利用flv特性,可以一邊接受數據邊解碼播放。

rtmp:rtmp是adobe研發的開放協議,rtmp其實實質上也是傳輸的flv格式的數據,同樣是flv tag,只不過rtmp在傳輸上封裝了一層,比如rtmp不僅可以直播,也可以推流。rtmp的直播原理同樣也是利用了flv文件的特性,只需要一些頭信息,后面就可以隨意傳輸音視頻數據,達到邊傳輸邊播放。

hls:hls是蘋果公司開發的協議,http輪詢傳輸,該協議主要的數據格式是ts視頻文件,大致就是將裸流h264和音頻直播數據,切片封裝成ts段,形成無數的ts小文件,客戶端先請求一個m3u8文件,該文件內部會有一列ts文件的地址,客戶端按照順序依次播放ts,以此類推,hls地址類似:http://mywebsite.com/live.m3u8,hls在大部分的瀏覽器利用html5video是可以直接播放的。

?

dash:這個協議國內用的不多,http輪詢傳輸,但是國外很多平臺都在用,比如youtube直播,該協議是google公司研發的,和hls如出一轍,同樣是將直播流數據切片,只不過不是ts文件,而是mp4或者3gp文件,又或者webm(vp8,vp9)文件,該協議同樣和hls一樣也是http傳輸,同樣和hls主打的是“自適應動態碼率”,大概意思就是當客戶端網絡不好的時候會無縫切換到低碼率的路線。

3,各種協議延時及其原因

rtmp和httpflv:這兩種協議大致數據一致,所以延時原因都是差不多的。按理說tcp流式傳輸直播因該都是延時極低的,為什么rtmp和httpflv還有延時呢?原因在h264上,rtmp和httpflv都是傳輸的flv tag,視頻tag的數據平常就是h264數據,h264解碼有個IBP,I是關鍵幀,是一幀完整的圖像,必須要先有個I才能解碼后面的BP,BP幀可以隨便少,但是I幀不能少,所以I幀必須是在flv tag傳輸中第二個傳輸的(第一個是h264spspps),但是I幀在h264流里不是常有的,是隔一段才有個I幀,這個一段的間隔,俗稱GOP,當編碼時候GOP設置很短,當客戶端連接上來,服務器會以最快速度找到流中最近I幀,從I幀開始發送直播數據,然而當GOP很長,I幀間隔很長,或者等待下一個I幀開始向新連接發送數據,或者在緩存里找最近的上一個I幀開始發送,這里就是rtmp和hls協議延時的關鍵了,在各大cdn平臺,叫“rtmp秒開技術”,原理就是將推流數據二次解編碼,設置很小的gop。總的來說,gop設置1s,在不考慮網絡傳輸鏈路延時情況,數據延時最大就為1s,運氣好剛好就是I幀就是0延時!

hls和dash:這兩種協議延時原因大致都是差不多的,因為切片了,切成小端的文件,單獨開始傳輸,這就是延時的關鍵了,當然可以設置切成小文件,越小延時越低。按理說dash切片要比hls稍微先進一點,所以延時上dash要比hls低,但是同樣的,切片了,就注定延時。

4,關于解碼播放的優劣勢

首先,我想說flash真的要被淘汰了,rtmp和httpflv目前在網頁上只能用flash或者插件的方式解碼播放,而且flash在cpu和內存上都是占用很高。但是在客戶端app上,不用網頁播放,你可以不用擔心這個問題。網頁上播放,hls和dash的優勢就體現出來了,可以用html5直接播放,當然理論上,dash的mp4的兼容性要比hls更好。而且hls和dash支持動態適應網絡,無縫調節碼率,這在網絡波動很大的地方,這個功能不錯,當然個人對于這個功能無所謂,我情愿線下看高清,也不線上看馬賽克。

5,總結

對于各種面向用戶的直播協議,我只講了一部分的,當然還有更多,這里就不一一列舉了。以后在瀏覽器上肯定是html5的市場,無論是hls也好dash也罷,或者新興的很多websocket直播也好,技術反正是在不斷更替的,或許有天,html5突然支持flv播放了呢?

我列一個表作為總結:

協議

httpflv

rtmp

hls

dash

傳輸層

http流

tcp流

http

http

視頻格式

flv

flv tag

Ts文件

Mp4 3gp webm

延時

很高

數據分段

連續流

連續流

切片文件

切片文件

Html5播放

暫不支持

不支持

大部分支持

極大部分支持

服務器編程難易

簡單

一般

一般+

中等

總結

以上是生活随笔為你收集整理的直播未来属于RTMP还是HTTP?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。