400-638-8808
|
微信公眾號





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術(shù)
易管理 免維護(hù)

背景
當(dāng)下,視頻直播行業(yè)在中國逐漸走紅。在剛剛過去的2017年,視頻直播成為互聯(lián)網(wǎng)行業(yè)最搶眼的領(lǐng)域之一。從游戲到秀場,從傳統(tǒng)的網(wǎng)頁端到移動互聯(lián)網(wǎng),各大直播平臺包括斗魚、熊貓tv、虎牙戰(zhàn)旗還有純移動端的印客、易直播等,群雄割據(jù)。言歸正轉(zhuǎn),接下來讓我們從技術(shù)的角度分析如何搭建一個(gè)自己的直播平臺。
流程圖
首先讓我們看一下直播整體流程。

首先是直播視頻采集端,由主播通過攝像頭手機(jī)等采集設(shè)備,采集視音頻流,編碼后采用RTMP協(xié)議[^RTMP]推流到直播流服務(wù)器。這里采用H.264[^H.264]編碼對視頻流進(jìn)行編碼,使用AAC[^AAC]對音頻流進(jìn)行編碼,采用這兩種編碼的原因是hls協(xié)議[^hls]要求使用這兩種編碼。
接下來直播服務(wù)器會對從采集端推送的流進(jìn)行一定的處理。比如,hls協(xié)議會將視頻流切片成一個(gè)個(gè)的TS視頻文件緩存在服務(wù)器中,同時(shí)生成一個(gè)m3u8文件記錄了視頻流中的包含的TS文件。
之后如果有播放器請求某一個(gè)直播鏈接,服務(wù)器會使用RTMP或者h(yuǎn)ls協(xié)議將流推送到播放器。那么我們該如果根據(jù)情況選擇這兩種協(xié)議呢。首先,我們需要明確一點(diǎn),這兩種協(xié)議各有利弊。如下所示:

綜合以上因素,我們認(rèn)為如果對實(shí)時(shí)性要求較高,那么使用RTMP會比較好。網(wǎng)頁端使用RTMP會比較好,因?yàn)镕lash Player原生支持,而大多數(shù)的瀏覽器都會安裝Flash player。而在移動端如果對實(shí)時(shí)性要求不高,那么采用hls比較好,因?yàn)閕os包括3.0以上的安卓都原生支持hls協(xié)議。接下來本文將根據(jù)以上的三個(gè)步驟的具體實(shí)現(xiàn)分別展開說明,為了篇幅考慮,我們會將一些內(nèi)容放到子文章中。
視頻采集與編碼
視頻采集可以有多重途徑,比如通過電腦攝像頭,通過OBS等錄屏軟件進(jìn)行錄屏,通過手機(jī)攝像頭采集。由于目前戶外直播和移動互聯(lián)網(wǎng)很火,所以我們就選擇實(shí)現(xiàn)在安卓設(shè)備上通過攝像頭采集視頻流(其實(shí)是因?yàn)槲沂菍懓沧康? =)。
為了實(shí)現(xiàn)這一功能,我們使用了一個(gè)開源項(xiàng)目javacv 它包含了一些在計(jì)算機(jī)視覺領(lǐng)域應(yīng)用比較多的庫,我們主要使用的是它的FFMpeg庫。使用FFMpeg的FFMpegFrameRecoder類,我們能夠方便地將從android攝像頭采集到的幀傳輸?shù)椒⻊?wù)器。具體的通過Camera和FFMpeg推流到服務(wù)器的實(shí)現(xiàn)請看我們的另一篇文章Android使用FFMpeg實(shí)現(xiàn)推送視頻直播流到服務(wù)器。另外FFMpeg也支持H.264和AAC編碼。
直播流服務(wù)器
關(guān)于直播服務(wù)器,我們選擇使用我們中國人開發(fā)的一個(gè)開源項(xiàng)目——srs,它支持RTMP/HTTP/RTSP等協(xié)議的流輸入,支持RTMP/HDS/HLS/HTTP等協(xié)議的流輸出,同時(shí)它也支持集群。給作者點(diǎn)贊。
關(guān)于srs的安裝和使用可以直接看它在github上的wiki,這里不再贅述。需要注意的一點(diǎn)是該項(xiàng)目在centos 6.x 和ubunut12.x上能正常編譯通過,但是在比如我使用的ubuntu14.04上會有一些依賴包的缺失。所以為了方便考慮的話,讀者可以在centos和ubuntu12.x上進(jìn)行test。
播放器
我們在試驗(yàn)的過程中,使用多種播放器和庫在全平臺實(shí)現(xiàn)了rtmp和hls的播放。在網(wǎng)頁端使用了videojs,在安卓端使用vitamio!

總結(jié)
當(dāng)然本文中的解決方案只是最簡單的,對于直播服務(wù)器集群,直播間的創(chuàng)建和管理,直播間直播密碼和權(quán)限,內(nèi)容分發(fā)網(wǎng)絡(luò)CDN都沒有進(jìn)行深入的研究。但是通過本實(shí)驗(yàn)性項(xiàng)目,我認(rèn)為對于我們了解整個(gè)直播的業(yè)務(wù)流程還是很有幫助的。

天下數(shù)據(jù)視頻直播服務(wù)器解決方案請戳:m.51huadong.com/2016/vod.asp
天下數(shù)據(jù)擁有超大規(guī)模數(shù)據(jù)中心資源遍布全球,如:俄羅斯、美國、巴西、德國、法國、荷蘭等海外服務(wù)器;天下數(shù)據(jù)為您的視頻直播服務(wù)器定制專屬解決方案!
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國云主機(jī) 韓國云主機(jī) 新加坡云主機(jī) 臺灣云主機(jī) 日本云主機(jī) 德國云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點(diǎn)定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團(tuán)隊(duì)建設(shè) 加入天下數(shù)據(jù) 媒體報(bào)道 榮譽(yù)資質(zhì) 付款方式關(guān)注我們
微信公眾賬號
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品