直播軟件開發(fā),根據(jù)模塊劃分出來的傳輸協(xié)議
直播軟件開發(fā)的模塊可以大致劃分為功能模塊、互動模塊、盈利模塊三個部分,每個模塊涉及到的功能不一樣就導(dǎo)致直播軟件開發(fā)在各個模塊使用的傳輸協(xié)議就不一樣。
以互動模塊為例,彈幕功能沒有太高的實時性要求,而且正常情況下主播端看到彈幕是在用戶發(fā)送彈幕2-3秒后,這屬于正常的延遲,那么使用RTMP協(xié)議完全可以滿足直播軟件開發(fā)的需要;如果是語音連麥場景下,RTMP協(xié)議的1-3秒延遲就顯得有些久了,就需要UDP協(xié)議來滿足連麥的實時性。那么根據(jù)模塊的不同,還能劃分出哪些不同的協(xié)議呢?
?

一、直播軟件開發(fā)常用的傳輸協(xié)議
這里我們主要來說一下RTMP協(xié)議,該協(xié)議是與TCP同一個協(xié)議組,包括RTMP及本協(xié)議及RTMP/RTMPS/RTMPE等多種變種。RTMP協(xié)議主要用于實時數(shù)據(jù)通信的網(wǎng)絡(luò)技術(shù)協(xié)議,目前RTMP協(xié)議還需要依靠播放器中的flash插件實現(xiàn)流媒體播放。
現(xiàn)在直播軟件開發(fā)已經(jīng)不會再為支持flash插件而費力了,隨著flash插件的停用,取而代之的是HTML5的播放格式,這類格式對編解碼要求小,能用最少的流量傳遞原視頻質(zhì)量。HTML5多用在網(wǎng)頁端直播,軟件類直播還是用RTMP的居多。
根據(jù)運營商不同,Android端和iOS端使用的協(xié)議也不一樣,iOS端多用HLS協(xié)議,HLS蘋果動態(tài)碼率的自適應(yīng)技術(shù),主要為PC端和蘋果終端的音視頻服務(wù),包括m3u8的索引文件和key加密串文件
?

二、直播軟件開發(fā)的直播和傳輸模塊
1、視頻錄制端,一般是指電腦上的音視頻輸入設(shè)備或手機端攝像頭、麥克風(fēng),目前以移動端的手機視頻為主,主要技術(shù)是webRTC
2、視頻播放端,可以是電腦上的播放器,手機端的native播放器,還有就是H5的video標(biāo)簽等,目前還是以手機端的native播放器為主,技術(shù):HLS協(xié)議或RTMP協(xié)議、FFmpeg
3、視頻服務(wù)器端,一般是一臺Nginx服務(wù)器,用來接受視頻錄制端提供的視頻源,同時提供給視頻播放端流服務(wù)。技術(shù):RTMP協(xié)議(用途:上傳視頻流)、Nginx、rtmp-module或SRS(simple-rtmp-server,用途:流服務(wù)器)
?

三、直播軟件開發(fā)的分發(fā)系統(tǒng)
內(nèi)容分發(fā)上離不開CDN的幫助,CDN的存在幫助直播軟件開發(fā)完成了快速傳遞視頻的任務(wù),選擇CDN服務(wù)商時需要考慮到CDN節(jié)點的分布問題,節(jié)點部署越廣泛,能覆蓋的面積就越廣,在加速方面就能達到更好的效果,畢竟內(nèi)容分發(fā)也是直播流程中非常重要的一部分,所以運營商還是要多挑選幾家,對比的選擇。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任