400-638-8808
|
微信公眾號(hào)








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

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

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

超大郵件 超級(jí)功能

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

微信掃一掃 關(guān)注"天下數(shù)據(jù)"商品一律九折
![]()
搜索"朗玥科技"關(guān)注,了解最新優(yōu)惠

背景
當(dāng)下,視頻直播行業(yè)在中國(guó)逐漸走紅。在已經(jīng)過(guò)去的2015年,視頻直播成為互聯(lián)網(wǎng)行業(yè)最搶眼的領(lǐng)域之一。從游戲到秀場(chǎng),從傳統(tǒng)的網(wǎng)頁(yè)端到移動(dòng)互聯(lián)網(wǎng),各大直播平臺(tái)包括斗魚(yú)、熊貓tv、虎牙戰(zhàn)旗還有純移動(dòng)端的映客、易直播等,群雄割據(jù)。接下來(lái)讓我們從技術(shù)的角度分析如何搭建一個(gè)自己的直播平臺(tái)。
直播整體流程
首先是直播視頻采集端,由主播通過(guò)攝像頭手機(jī)等采集設(shè)備,采集視音頻流,編碼后采用RTMP協(xié)議1推流到直播流服務(wù)器。這里采用H.264[^H.264]編碼對(duì)視頻流進(jìn)行編碼,使用AAC2對(duì)音頻流進(jìn)行編碼,采用這兩種編碼的原因是hls協(xié)議3要求使用這兩種編碼。 接下來(lái)直播服務(wù)器會(huì)對(duì)從采集端推送的流進(jìn)行一定的處理。比如,hls協(xié)議會(huì)將視頻流切片成一個(gè)個(gè)的TS視頻文件緩存在服務(wù)器中,同時(shí)生成一個(gè)m3u8文件記錄了視頻流中的包含的TS文件。 之后如果有播放器請(qǐng)求某一個(gè)直播鏈接,服務(wù)器會(huì)使用RTMP或者h(yuǎn)ls協(xié)議將流推送到播放器。那么我們?cè)撊绻鶕?jù)情況選擇這兩種協(xié)議呢。首先,我們需要明確一點(diǎn),這兩種協(xié)議各有利弊。 如下所示:
|
|
RTMP |
HIS |
|
公司 |
Adobe |
Apple |
|
平臺(tái)支持 |
FlashPlayer 等一些網(wǎng)頁(yè)端播放器 移動(dòng)端 Vitamio |
Apple產(chǎn)品原生支持 Android3.0以上原生支持 桌面機(jī)瀏覽器需要使用一些第三方庫(kù) 如JWPlayer |
|
延遲 |
三秒左右延遲,實(shí)時(shí)性較高 |
根據(jù)TS長(zhǎng)度不同而不同,一般會(huì)有10s以上延遲 |
綜合以上因素,我們認(rèn)為如果對(duì)實(shí)時(shí)性要求較高,那么使用RTMP會(huì)比較好。網(wǎng)頁(yè)端使用RTMP會(huì)比較好,因?yàn)镕lash Player原生支持,而大多數(shù)的瀏覽器都會(huì)安裝Flash player。而在移動(dòng)端如果對(duì)實(shí)時(shí)性要求不高,那么采用hls比較好,因?yàn)閕os包括3.0以上的安卓都原生支持hls協(xié)議。接下來(lái)本文將根據(jù)以上的三個(gè)步驟的具體實(shí)現(xiàn)分別展開(kāi)說(shuō)明。
視頻采集與編碼
視頻采集可以有多重途徑,比如通過(guò)電腦攝像頭,通過(guò)OBS等錄屏軟件進(jìn)行錄屏,通過(guò)手機(jī)攝像頭采集。由于目前戶外直播和移動(dòng)互聯(lián)網(wǎng)很火,所以我們就選擇實(shí)現(xiàn)在安卓設(shè)備上通過(guò)攝像頭采集視頻流(其實(shí)是因?yàn)槲沂菍?xiě)安卓的= =)。 為了實(shí)現(xiàn)這一功能,我們使用了一個(gè)開(kāi)源項(xiàng)目javacv 它包含了一些在計(jì)算機(jī)視覺(jué)領(lǐng)域應(yīng)用比較多的庫(kù),我們主要使用的是它的FFMpeg庫(kù)。使用FFMpeg的FFMpegFrameRecoder類,我們能夠方便地將從android攝像頭采集到的幀傳輸?shù)椒⻊?wù)器。另外FFMpeg也支持H.264和AAC編碼。
直播流服務(wù)器
關(guān)于直播服務(wù)器,我們選擇使用我們中國(guó)人開(kāi)發(fā)的一個(gè)開(kāi)源項(xiàng)目——srs,它支持RTMP/HTTP/RTSP等協(xié)議的流輸入,支持RTMP/HDS/HLS/HTTP等協(xié)議的流輸出,同時(shí)它也支持集群。
關(guān)于srs的安裝和使用可以直接看它在github上的wiki,這里不再贅述。需要注意的一點(diǎn)是該項(xiàng)目在centos 6.x 和ubunut12.x上能正常編譯通過(guò),但是在比如我使用的ubuntu14.04上會(huì)有一些依賴包的缺失。所以為了方便考慮的話,讀者可以在centos和ubuntu12.x上進(jìn)行test。
播放器
我們?cè)谠囼?yàn)的過(guò)程中,使用多種播放器和庫(kù)在全平臺(tái)實(shí)現(xiàn)了rtmp和hls的播放。在網(wǎng)頁(yè)端使用了videojs,在安卓端使用vitamio。具體的實(shí)現(xiàn)請(qǐng)看我們的另外一篇如何在網(wǎng)頁(yè)端和移動(dòng)端播放rtmp和hls視頻流
總結(jié)
當(dāng)然本文中的解決方案只是最簡(jiǎn)單的,對(duì)于直播服務(wù)器集群,直播間的創(chuàng)建和管理,直播間直播密碼和權(quán)限,內(nèi)容分發(fā)網(wǎng)絡(luò)CDN都沒(méi)有進(jìn)行深入的研究。但是通過(guò)本實(shí)驗(yàn)性項(xiàng)目,我認(rèn)為對(duì)于我們了解整個(gè)直播的業(yè)務(wù)流程還是很有幫助的。
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國(guó)服務(wù)器 韓國(guó)服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺(tái)灣服務(wù)器云服務(wù)器
香港云主機(jī) 美國(guó)云主機(jī) 韓國(guó)云主機(jī) 新加坡云主機(jī) 臺(tái)灣云主機(jī) 日本云主機(jī) 德國(guó)云主機(jī) 全球云主機(jī)高防專線
海外高防IP 海外無(wú)限防御 SSL證書(shū) 高防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)注我們
微信公眾賬號(hào)
新浪微博
天下數(shù)據(jù)手機(jī)站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠(chéng)聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊(cè) 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國(guó)服務(wù)器、海外云主機(jī)、海外vps主機(jī)租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國(guó)增值電信業(yè)務(wù)經(jīng)營(yíng)許可證》 ISP證:粵ICP備07026347號(hào)
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運(yùn)營(yíng))聯(lián)合版權(quán)
深圳總部:中國(guó).深圳市南山區(qū)深圳國(guó)際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號(hào)建安商業(yè)大廈7樓
7×24小時(shí)服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊(cè)業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品