http允許傳輸任意型別的資料物件。正在傳輸的型別由content-type加以標記。
無連線的含義是限制每次連線只處理乙個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。
http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連線傳送的資料量增大。另一方面,在伺服器不需要先前資訊時它的應答就較快。
網際網路上rtmp協議的延遲基本上能夠滿足要求。
rtmp實際上是現在編碼器輸出的工業標準協議,基本上所有的編碼器(攝像頭之類)都支援rtmp輸出。
原因在於pc市場巨大,pc主要是windows,windows的瀏覽器基本上都支援flash,
flash又支援rtmp支援得非常好。
對於商用流**應用,客戶端的穩定性當然也是必須的,否則終端使用者看不了還怎麼玩?
該客戶走rtmp方案後,經過cdn分發,沒聽說客戶端出問題了。
比起yy的那種udp私有協議,rtmp算延遲大的(延遲在1-3秒),
比起http流的延時(一般在10秒以上)rtmp算低延時。
一般的直播應用,只要不是**類對話的那種要求,rtmp延遲是可以接受的。
技術一定要知道弱點,rtmp有個弱點就是累積誤差,原因是rtmp基於tcp不會丟包。
所以當網路狀態差時,伺服器會將包快取起來,導致累積的延遲;待網路狀況好了,就一起發給客戶端。 這個的對策就是,當客戶端的緩衝區很大,就斷開重連。
rtmp延遲的測量
如何測量延時,是個很難的問題,
不過有個行之有效的方法,就是用手機的秒錶,可以比較精確的對比延時。
經過測量發現,在網路狀況良好時:
. rtmp延時可以做到0.8秒左右。
. 多級邊緣節點不會影響延遲(和srs同源的某cdn的邊緣伺服器可以做到)
. nginx-rtmp延遲有點大,估計是快取的處理,多程序通訊導致?
. gop是個硬指標,不過srs可以關閉gop的cache來避免這個影響.
. 伺服器效能太低,也會導致延遲變大,伺服器來不及傳送資料。
. 客戶端的緩衝區長度也影響延遲。
譬如flash客戶端的netstream.buffertime設定為10秒,那麼延遲至少10秒以上。
直播技術教你搭建手機直播系統直播原始碼!
it界知名段子手,網路紅人魚羊兒曾經說 對於那些月薪兩萬以下,自稱程式設計師的碼農們,其實我們從來沒有把他們歸為我們程式設計師的隊伍。他們雖然總是以程式設計師自居,只是他們的一廂情願罷了。哼哼!廢話不多說!有技術實力和流量優勢的網際網路從業者都不願錯過直播這個風口,如何快速搭建乙個直播系統成了大家關...
直播 RMTP HLS直播延時問題因素
推流拉流的介面一般比較複雜,那麼就涉及到了介面的優化,譬如常見的直播端中的聊天禮物之類的需要處理好執行緒執行。裝置編譯碼效能不足導致推流卡頓 丟幀明顯。關於推流裝置方面,一般推流 ios 會建議使用硬編,硬編效率更高一些,同時會比較省電 android 端因為機型複雜,cpu型別眾多,採用硬編可能會...
直播軟體搭建直播服務架構
直播軟體搭建直播服務架構 直播軟體搭建直播服務架構 本系列文章的所有內容都是圍繞上圖展開。相信大家或多或少都接觸過網路直播,對直播業務都有一定了解 主播通過手機或pc開播,觀眾通過終端裝置進入房間 直播。直播業務由三大要素組成 主播 伺服器 觀眾,對應上圖的傳送端 伺服器 接收端,其中傳送端的行為是...