視頻直播平臺如何搭建
(1)直播中使用的流媒體協議
UDP協議,一(yi)種傳輸層的(de)網絡(luo)協議,可靠(kao)性低,但是(shi)效(xiao)率(lv)很高。常用(yong)于對(dui)實時性要求(qiu)高的(de)直播應用(yong)中。
RTMP,Real Time Messaging Protocol(實(shi)(shi)時消息(xi)傳輸協議(yi))的首字(zi)母縮寫。該協議(yi)基于TCP,是一個協議(yi)族,包括RTMP基本協議(yi)及RTMPT/RTMPS/RTMPE等(deng)多種(zhong)變種(zhong)。RTMP是一種(zhong)設計用(yong)來進行實(shi)(shi)時數據通信的網絡協議(yi),主要(yao)用(yong)來在Flash/AIR平臺和(he)支持RTMP協議(yi)的流媒體(ti)/交互服務器(qi)之間進行音視頻和(he)數據通信。RTMP基于flash技術(shu),無法(fa)在iOS的瀏覽器(qi)中播(bo)放,但是實(shi)(shi)時性比HLS要(yao)好(hao)。
HTTP-TS協(xie)議,用TS來(lai)封(feng)裝(zhuang)數據包,然后將其通(tong)過HTTP協(xie)議進行傳送。它(ta)基于(yu)傳輸(shu)層的TCP協(xie)議來(lai)實現,有(you)實時(shi)性和傳輸(shu)穩定(ding)性方面(mian)都(dou)有(you)更好(hao)的表現。
HLS協議(yi),HTTP Live Streaming(HTTP直播流技(ji)術),Apple的(de)動態碼率自適(shi)應(ying)技(ji)術。主要用于PC和(he)Apple iOS移動終端(duan)。包括一個m3u(8)的(de)索引文件(jian),TS媒體分片文件(jian)和(he)key加(jia)密串文件(jian)。它的(de)特(te)點(dian)是更(geng)適(shi)合做CDN分發,但(dan)是實時(shi)性(xing)很差,一般端(duan)到端(duan)延時(shi)要20秒(miao)以上。
(2)直播的模塊劃分
視頻采集和編碼錄制端
視(shi)頻(pin)(pin)采集設備一般是(shi)電腦上的(de)音視(shi)頻(pin)(pin)輸入設備或(huo)者(zhe)手(shou)機端(duan)的(de)攝像頭或(huo)者(zhe)麥(mai)克風,編碼(ma)和錄制工具(ju)通(tong)常是(shi)軟(ruan)件,比如PC端(duan)使(shi)用的(de)“直(zhi)播(bo)大師(Live Master)”或(huo)者(zhe)“串流直(zhi)播(bo)”,手(shou)機端(duan)使(shi)用的(de)ffmpeg和WebRTC這類工具(ju)。
視頻播放端
可以是電腦上的(de)(de)播放器(qi),手機(ji)端的(de)(de)Native播放器(qi),還(huan)(huan)有就是H5的(de)(de)video標簽等,目前還(huan)(huan)是已手機(ji)端的(de)(de)Native播放器(qi)為主。視(shi)頻(pin)傳輸(shu)技術:主要以HTTP傳輸(shu)協議(yi)為主,因為它基于(yu)HTTP協議(yi)實現(xian),具有天然的(de)(de)跨(kua)防火墻(qiang)和多終端支持(chi)特性(xing)。HLS協議(yi),主要面(mian)向iOS移動終端使用。RTMP協議(yi),主要用于(yu)PC端的(de)(de)視(shi)頻(pin)播放,實時性(xing)比較高。
視頻服務器端
視頻(pin)傳輸和播放用(yong)的流(liu)媒體服(fu)務器,通(tong)常是用(yong)C或者C++語言開發實(shi)現(xian),主要實(shi)現(xian)一對多的視頻(pin)流(liu)發布功能。
內容分發系統
很多(duo)人都(dou)知道,涉及到大(da)規模內容分(fen)(fen)發都(dou)需要用到CDN技術,并且(qie)市場(chang)上出現了很多(duo)專門提(ti)供(gong)CDN服(fu)務的(de)(de)上市公(gong)司(si),比(bi)如美國的(de)(de)Akaimai,中(zhong)國的(de)(de)藍汛(xun)、網宿、帝聯等(deng),他們(men)通(tong)(tong)過為(wei)用戶(hu)提(ti)供(gong)內容的(de)(de)大(da)范圍(wei)分(fen)(fen)發服(fu)務來(lai)(lai)盈利(li)。但是(shi)(shi)如果你要做視(shi)頻運(yun)營(ying)要完全依靠這些(xie)公(gong)司(si)的(de)(de)服(fu)務來(lai)(lai)支(zhi)撐,那么(me)你的(de)(de)利(li)潤很大(da)一(yi)部分(fen)(fen)都(dou)要交給這些(xie)服(fu)務提(ti)供(gong)商,所以最終還需要自(zi)(zi)身(shen)具備這種技術能(neng)力(li)。像大(da)的(de)(de)運(yun)營(ying)平臺(優酷、土豆、騰(teng)訊(xun)視(shi)頻、視(shi)頻、愛奇藝、樂(le)視(shi)、映客直播、YY直播、花椒(jiao)直播)都(dou)是(shi)(shi)通(tong)(tong)過自(zi)(zi)建CDN平臺來(lai)(lai)支(zhi)撐自(zi)(zi)身(shen)的(de)(de)業務運(yun)營(ying)。這方面的(de)(de)核(he)心技術都(dou)是(shi)(shi)很專業的(de)(de),都(dou)需要一(yi)個(ge)強(qiang)大(da)的(de)(de)研發團隊多(duo)年時間才能(neng)將其打(da)造成產(chan)品(pin)化和運(yun)營(ying)級的(de)(de)平臺。
網絡直播平臺怎么做?
技術積累
語音視(shi)頻技(ji)術(shu)是(shi)硬骨(gu)頭,不(bu)(bu)是(shi)簡單搞(gao)(gao)幾個(ge)頁面,不(bu)(bu)是(shi)搞(gao)(gao)一(yi)個(ge)業務支撐系(xi)統,這是(shi)需要經過多年技(ji)術(shu)積(ji)累的(de)(de)(de)。比如說(shuo)YY,他們做很多年才(cai)積(ji)累到今天(tian)的(de)(de)(de)水平。比如說(shuo)騰訊、等,他們也是(shi)組建了(le)一(yi)個(ge)數(shu)十人的(de)(de)(de)強(qiang)大的(de)(de)(de)技(ji)術(shu)開(kai)發團隊,摸爬打滾了(le)好多年才(cai)有了(le)今天(tian)的(de)(de)(de)輝煌(huang)。
人力成本
視(shi)音頻和(he)流媒體(ti)技(ji)術(shu)方(fang)面的(de)(de)工程師要(yao)價也是相當高的(de)(de),因(yin)為這方(fang)面的(de)(de)技(ji)術(shu)專(zhuan)家(jia)通常(chang)都有8年(nian)(nian)以(yi)上的(de)(de)開(kai)發(fa)經驗。涉(she)及到(dao)的(de)(de)核心技(ji)術(shu)主要(yao)有視(shi)音頻編解碼、噪(zao)音抑制、回聲(sheng)消除、自(zi)動(dong)增益、前(qian)向糾錯、丟幀補(bu)償、抖動(dong)緩沖、CDN內容分發(fa)、網絡流自(zi)適應等,每個(ge)(ge)(ge)技(ji)術(shu)模塊至(zhi)少(shao)需(xu)要(yao)一個(ge)(ge)(ge)專(zhuan)業人(ren)(ren)員(yuan)來負責,然后要(yao)實現跨平(ping)臺和(he)全終端(duan)兼容。這么(me)算起來,整個(ge)(ge)(ge)開(kai)發(fa)團隊就(jiu)至(zhi)少(shao)需(xu)要(yao)30個(ge)(ge)(ge)人(ren)(ren)員(yuan),整個(ge)(ge)(ge)平(ping)臺的(de)(de)開(kai)發(fa)周期至(zhi)少(shao)需(xu)要(yao)1年(nian)(nian),并且至(zhi)少(shao)還需(xu)要(yao)6個(ge)(ge)(ge)月的(de)(de)功(gong)能完善和(he)性能調優。按(an)照人(ren)(ren)均工資3萬(wan)元/月來計算,平(ping)臺的(de)(de)人(ren)(ren)力(li)成本需(xu)要(yao)1260萬(wan)元以(yi)上。