手機直播源碼的小幫手,幾個常用的推送協(xié)議
時間:2022-05-18 04:18:01 | 來源:行業(yè)動態(tài)
時間:2022-05-18 04:18:01 來源:行業(yè)動態(tài)
推送協(xié)議是直播業(yè)務(wù)中非常重要的推流、傳輸部分,推送協(xié)議不僅適用于PC端的播放要求,手機直播源碼中同樣適用。
之所以要用到推送協(xié)議,因為推流對直播鏈路的影響非常大,推流過程中網(wǎng)絡(luò)穩(wěn)定才能保證數(shù)據(jù)傳輸穩(wěn)定,如果做不到,那不論怎樣優(yōu)化,最終開發(fā)出的APP使用體驗都非常糟糕,所以,選擇正確的推送協(xié)議非常重要。
RTMP協(xié)議
手機直播源碼、直播源碼中最常用的實時傳輸協(xié)議。RTMP是一種設(shè)計用來進行實時數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用于在flash/air平臺和支持RTMP協(xié)議的流媒體、交互服務(wù)器之間進行音視頻和數(shù)據(jù)通信。
RTMP協(xié)議的優(yōu)勢在于CDN支持良好,大部分主流CDN廠商都可以支持,并且協(xié)議相對簡單,容易在各平臺上實現(xiàn)。
劣勢在于RTMP協(xié)議傳輸成本高,在弱網(wǎng)絡(luò)環(huán)境下丟包率會明顯增加,不支持瀏覽器的推送。想要從手機看直播的朋友必須要下載相應(yīng)的軟件。
WebRTC協(xié)議
WebRTC是專門適用網(wǎng)頁的即時通信工具,是支持網(wǎng)頁瀏覽器進行實時語音對話或者視頻對話的API,但在手機直播源碼中的使用次數(shù)較少,多用于視頻會議或者連麥中。
優(yōu)勢在于W3C的標準,支持主流的瀏覽器,與瀏覽器的鍥合程度高。底層的SRTP和UDP協(xié)議,在弱網(wǎng)絡(luò)環(huán)境下,也有很大的表現(xiàn)空間,能夠?qū)崿F(xiàn)點對點通信,通信時雙方產(chǎn)生的延遲較低。劣勢很明顯,對CDN的支持性較差。
UDP私有協(xié)議
這種屬于手機直播源碼中的使用比較特殊的協(xié)議,通過UDP作為底層協(xié)議,然后開發(fā)自己的私有協(xié)議,通過定制化的調(diào)整,UDP協(xié)議可以很好的適用弱網(wǎng)絡(luò)環(huán)境情況,在弱網(wǎng)絡(luò)環(huán)境中仍然能達到很好的效果。
優(yōu)勢在于可以隨時調(diào)整,可操作性大,能及時對不同環(huán)境做出優(yōu)化。
劣勢就是開發(fā)成本太高,作為私有協(xié)議,無法與大多數(shù)CDN鍥合,只能在運營商自己建立的CDN上使用。
網(wǎng)絡(luò)傳輸協(xié)議只是作為視頻流的輔助傳輸工具,在網(wǎng)絡(luò)堵塞情況中,只要進行一定的只能調(diào)度,就能保證直播流暢。作為手機直播源碼開發(fā)的基礎(chǔ),為了確保直播的流暢性,還是要在協(xié)議上多下功夫。