開發與維運

直播程序源碼實現直播業務時必不可少的方面

1.RTMP
(1)定義
相信大家對這個協議一點都不陌生,它就是直播中最常用的實時傳輸協議。RTMP基於TCP是一個協議族(包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種)。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用於在Flash/AIR平臺和支持RTMP協議的流媒體、交互服務器之間進行音視頻和數據通信。
(2)優勢
主要體現在CDN支持良好,大部分主流的CDN廠商都可以支持。並且協議相對簡單,容易在各個平臺上實現。
(3)劣勢
由於RTMP是基於TCP,傳輸成本較高。而且在弱網環境下丟包率較高的情況十分明顯,不支持瀏覽器推送。
image.png

2.WebRTC
(1)定義
WebRTC名稱源自網頁即時通信,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的API。它於2011年6月1日開源並在Google、Mozilla、Opera支持下被納入萬維網聯盟的W3C推薦標準。目前主要應用於視頻會議和連麥中。
(2)優勢
W3C的標準,支持主流瀏覽器的程度較高。底層基於SRTP和UDP,在弱網情況下優化的空間較大,能夠實現點對點通信,通信時雙方產生的延時較低。
(3)劣勢
傳統的CDN支持性較差。
image.png

3.基於UDP的私有協議
(1)簡介
有的直播應用場景會使用UDP作為底層的協議,然後開發自己的私有協議。為什麼呢?因為UDP在弱網環境下可以通過一些定製化的調優,從而達到較好的弱網優化效果。
(2)優勢
具備更多的空間進行定製化的優化。
(3)劣勢
大家比較關心的一點就是,開發成本較高。CDN支持不太友好,需要自建CDN或者是和CDN達成協議。
其實在直播應用場景下推送出去的流媒體需要傳輸到用戶端,這一個鏈路就是所謂的傳輸網絡。如果在傳輸過程中出現網絡擁塞的情況,就需要進行一定的智能調度,從而使得傳輸網絡保持順暢。所以說,擁有在線直播源碼是軟件開發過程中最基礎的一步。要想實現直播業務,並且保證直播業務的流暢運行,在協議的選擇上也要多下一番功夫。
本文轉載自網絡,感謝(愛吃五花肉嗎)的分享,轉載僅為分享乾貨知識,如有侵權歡迎聯繫雲豹科技進行刪除處理

Leave a Reply

Your email address will not be published. Required fields are marked *