可能大部分人認為,只要擁有一套優(yōu)質(zhì)的在線直播源碼,就可以順利進行開發(fā)和搭建等步驟了。但實際上,整個直播過程主要涉及到采集、處理、編碼、封裝、推流、傳輸、解碼等一系列過程,本次就重點說推流和傳輸?shù)膯栴}。
推流對于直播鏈路的影響是非常大的。下面一起來看下開發(fā)時需要了解的幾個
推送協(xié)議。
1.RTMP
即實時消息傳輸協(xié)議,該協(xié)議基于TCP是一個協(xié)議族。其中包括RTMP基本協(xié)議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設(shè)計用來進行實時數(shù)據(jù)通信的網(wǎng)絡(luò)協(xié)議,主要用來在Flash/AIR平臺和支持RTMP協(xié)議的流媒體/交互服務器之間進行音視頻和數(shù)據(jù)通信。支持該協(xié)議的軟件包括AdobeMediaServer/UltrantMediaServer/red5等。RTMP是目前主流的流媒體傳輸協(xié)議,廣泛用于直播領(lǐng)域。
RTMP協(xié)議基本特點:
基于TCP協(xié)議的應用層協(xié)議
默認通信端口1935
RTMPURL格式:
rtmp://ip:[port]/appName/streamName
2、WebRTC
WebRTC名稱源自網(wǎng)頁即時通信,是一個支持網(wǎng)頁瀏覽器進行實時語音對話或視頻對話的API。它于2011年6月1日開源并在Google、Mozilla、Opera支持下被納入萬維網(wǎng)聯(lián)盟的W3C推薦標準。目前主要應用于視頻會議和連麥中。
3、基于UDP的私有協(xié)議
有些直播應用會使用UDP作為底層協(xié)議開發(fā)自己的私有協(xié)議,因為UDP在弱網(wǎng)環(huán)境下的優(yōu)勢通過一些定制化的調(diào)優(yōu)可以達到比較好的弱網(wǎng)優(yōu)化效果,但同樣因為是私有協(xié)議也勢必有現(xiàn)實問題。
以上常用推送協(xié)議中,RTMP是目前主流的流媒體傳輸協(xié)議,廣泛用于直播領(lǐng)域,可以說市面上絕大多數(shù)的直播產(chǎn)品都采用了這個協(xié)議。