如何快速搭建一個(gè)完整的移動(dòng)直播系統(tǒng)?

5 評(píng)論 21089 瀏覽 176 收藏 16 分鐘

移動(dòng)直播行業(yè)的火熱會(huì)在很長(zhǎng)一段時(shí)間內(nèi)持續(xù),通過(guò)和各行業(yè)的整合,從而成為具有無(wú)限可能性的行業(yè)。主要有以下三個(gè)原因:

第一,移動(dòng)直播的UGC生產(chǎn)模式比PC端的直播更明顯,人人都有設(shè)備,隨時(shí)隨地開(kāi)播,完全順應(yīng)了互聯(lián)網(wǎng)時(shí)代的開(kāi)放性原則,能刺激更多人去創(chuàng)造和傳播優(yōu)質(zhì)內(nèi)容。

第二,網(wǎng)絡(luò)帶寬和速度在逐漸提高,網(wǎng)絡(luò)成本在逐漸下降,為移動(dòng)直播提供一個(gè)極佳的發(fā)展環(huán)境。文字、聲音、視頻、游戲等都會(huì)在移動(dòng)直播中呈現(xiàn),創(chuàng)造出更加豐富的用戶體驗(yàn)。直播可以以SDK的形式接入到自己的應(yīng)用中,比如,教育領(lǐng)域中的課后輔導(dǎo)完全可以以直播的形式開(kāi)展業(yè)務(wù)、電商也可借助直播讓用戶挑選商品,促進(jìn)銷售。

第三,一個(gè)與VR/AR技術(shù)相結(jié)合的移動(dòng)直播為整個(gè)行業(yè)的未來(lái)提供了新的發(fā)展空間。VR/AR直播能夠讓用戶身臨其境,帶動(dòng)主播與觀眾更貼近真實(shí)的互動(dòng),大大提高平臺(tái)的用戶參與度。

當(dāng)下,有技術(shù)實(shí)力和流量?jī)?yōu)勢(shì)的互聯(lián)網(wǎng)從業(yè)者都不愿錯(cuò)過(guò)直播這個(gè)風(fēng)口,如何快速搭建一個(gè)直播系統(tǒng)成了大家關(guān)心的問(wèn)題,我想和大家分享下我的經(jīng)驗(yàn)。我從事于一家直播產(chǎn)品開(kāi)發(fā)商,我們的產(chǎn)品為了快速趕上市場(chǎng),使用了云服務(wù)提供商的直播SDK。

從業(yè)者都知道,一個(gè)完整直播產(chǎn)品應(yīng)該包含以下環(huán)節(jié):推流端(采集、前處理、編碼、推流)、服務(wù)端處理(轉(zhuǎn)碼、錄制、截圖、鑒黃)、播放器(拉流、解碼、渲染)、互動(dòng)系統(tǒng)(聊天室、禮物系統(tǒng)、贊)。 下面我就一一講述下直播SDK在各個(gè)環(huán)節(jié)所做的工作。

一、移動(dòng)直播推流端需要做哪些工作?

直播推流端即主播端,主要通過(guò)手機(jī)攝像頭采集視頻數(shù)據(jù)和麥克風(fēng)采集音頻數(shù)據(jù),經(jīng)過(guò)一系列前處理、編碼、封裝,然后推流到CDN進(jìn)行分發(fā)。

如何快速搭建一個(gè)完整的移動(dòng)直播系統(tǒng)?

1、采集

移動(dòng)直播SDK通過(guò)手機(jī)攝像頭和麥克風(fēng)直接采集音視頻數(shù)據(jù)。其中,視頻采樣數(shù)據(jù)一般采用RGB或YUV格式、音頻采樣數(shù)據(jù)一般采用PCM格式。采集到的原始音視頻的體積是非常大的,需要經(jīng)過(guò)壓縮技術(shù)處理來(lái)提高傳輸效率。

2、前處理

在這個(gè)環(huán)節(jié)主要處理美顏、水印、模糊等效果。美顏功能幾乎是直播的標(biāo)配功能。我們調(diào)研中發(fā)現(xiàn)太多case是因?yàn)闆](méi)有美顏功能被拋棄使用的。另外國(guó)家明確提出了,所有直播都必須打有水印并回放留存15天以上。

美顏實(shí)際上是通過(guò)算法去識(shí)別圖像中的皮膚部分,對(duì)皮膚區(qū)域進(jìn)行色值調(diào)整。通過(guò)顏色對(duì)比找到皮膚區(qū)域,可以進(jìn)行色值調(diào)整、添加白色圖層或調(diào)整透明度等來(lái)達(dá)到美白效果。在美顏處理方面,最著名的GPUImage提供了豐富的效果,同時(shí)可以支持iOS和Android,支持自己寫算法實(shí)現(xiàn)自己最理想的效果。GPUImage內(nèi)置了120多種常見(jiàn)濾鏡效果,添加濾鏡只需要簡(jiǎn)單調(diào)用幾行代碼就可以了。

3、編碼

為了便于手機(jī)視頻的推流、拉流以及存儲(chǔ),通常采用視頻編碼壓縮技術(shù)來(lái)減少視頻的體積,現(xiàn)在比較常用的視頻編碼是H.264。在音頻方面,比較常用的是AAC編碼格式,其它如MP3、WMA也是可選方案。視頻經(jīng)過(guò)編碼壓縮大大提高了視頻的存儲(chǔ)和傳輸效率,當(dāng)然,經(jīng)過(guò)壓縮后的視頻在播放時(shí)必須進(jìn)行解碼。

相較于之前的H.264,2012年誕生的H.265編解碼標(biāo)準(zhǔn)有了相當(dāng)大的改善,做到了僅需要原來(lái)一半帶寬即可播放相同質(zhì)量的視頻,低于1.5Mbps的網(wǎng)絡(luò)也能傳輸1080p的高清視頻。像阿里云、金山云都在推自己的H.265編解碼技術(shù),隨著直播的快速發(fā)展和對(duì)帶寬的依賴,H.265編解碼技術(shù)已有全面取代H.264的趨勢(shì)。

H264和H265個(gè)模塊技術(shù)差異:

如何快速搭建一個(gè)完整的移動(dòng)直播系統(tǒng)?

另外,硬件編碼已經(jīng)成為移動(dòng)直播的首選方案,軟編碼處理在720p以上的視頻頹勢(shì)非常明顯。在iOS平臺(tái)上硬件編碼的兼容性比較好,可以直接采用,但在Android平臺(tái)上,Media Codec編碼器針對(duì)不同的芯片平臺(tái)表現(xiàn)差異還是非常大的,要完全實(shí)現(xiàn)全平臺(tái)兼容的成本還是非常高的。

4、推流

要想用于推流還必須把音視頻數(shù)據(jù)使用傳輸協(xié)議進(jìn)行封裝,變成流數(shù)據(jù)。常用的流傳輸協(xié)議有RTSP、RTMP、HLS等,使用RTMP傳輸?shù)难訒r(shí)通常在1–3秒,對(duì)于移動(dòng)直播這種實(shí)時(shí)性要求非常高的場(chǎng)景,RTMP也成為移動(dòng)直播中最常用的流傳輸協(xié)議。最后通過(guò)一定的Qos算法將音視頻流數(shù)據(jù)推送到網(wǎng)絡(luò)斷,通過(guò)CDN進(jìn)行分發(fā)。在直播場(chǎng)景中,網(wǎng)絡(luò)不穩(wěn)定是非常常見(jiàn)的,這時(shí)就需要Qos來(lái)保證網(wǎng)絡(luò)不穩(wěn)情況下的用戶觀看直播的體驗(yàn),通常是通過(guò)主播端和播放端設(shè)置緩存,讓碼率均勻。另外,針對(duì)實(shí)時(shí)變化的網(wǎng)絡(luò)狀況,動(dòng)態(tài)碼率和幀率也是最常用的策略。

當(dāng)然,在網(wǎng)絡(luò)傳輸方面全部自己來(lái)做基本不現(xiàn)實(shí),找提供推流服務(wù)的CDN服務(wù)商提供解決方案是最好的選擇。據(jù)了解,阿里云是國(guó)內(nèi)唯一能自研CDN緩存服務(wù)器的廠商,性能非常有保障。當(dāng)然,大多數(shù)直播平臺(tái)都會(huì)同時(shí)接入多個(gè)視頻云服務(wù)提供商,這樣可以做拉流線路互備,對(duì)推流后視頻集群再進(jìn)行優(yōu)化也可提高直播的流暢性和穩(wěn)定性。

二、服務(wù)端處理需要做哪些工作?

要想適配各終端和平臺(tái),服務(wù)端還需要對(duì)流進(jìn)行轉(zhuǎn)碼,如支持RTMP、HLS、FLV等格式拉流,支持一路轉(zhuǎn)多路適配不同網(wǎng)絡(luò)和分辨率的終端設(shè)備。

1、截圖、錄制、水印

像阿里云等云服務(wù)商都提供了實(shí)時(shí)轉(zhuǎn)碼技術(shù),將用戶推流碼率較高(比如720P)實(shí)時(shí)轉(zhuǎn)化成較低清晰度(比如360P)的流以適應(yīng)播放端的需求。如果要自己搭建實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),這個(gè)成本是極高的,一臺(tái)8核設(shè)備只能實(shí)時(shí)轉(zhuǎn)10路流,如果一個(gè)正常的直播平臺(tái)有1000路流,就需要100臺(tái)設(shè)備,加上后期的運(yùn)維成本,一般公司就吃不消了。

2、鑒黃

2016年4月14日,文化部查出了斗魚(yú)、虎牙、YY、熊貓TV、六間房、9158等涉嫌提供含宣揚(yáng)淫穢、暴力、教唆犯罪的網(wǎng)絡(luò)直播平臺(tái),被列入查處名單。政府介入管制有利于直播行業(yè)打造健康的生態(tài),進(jìn)入良性發(fā)展。這也意味著為了安全直播產(chǎn)品鑒黃成了必需環(huán)節(jié),使用技術(shù)手段去鑒黃是移動(dòng)直播平臺(tái)必然采用的方案。

市面上提供鑒黃服務(wù)的方案主要有兩種:

第一種是對(duì)視頻進(jìn)行截圖,然后對(duì)圖片進(jìn)行鑒黃,返回鑒黃結(jié)果和分值。典型的企業(yè)有阿里(綠網(wǎng))、圖譜科技,他們目前都支持直接傳入視頻,經(jīng)過(guò)服務(wù)端分析返回結(jié)果。通常由業(yè)務(wù)系統(tǒng)接入鑒黃服務(wù),根據(jù)鑒黃結(jié)果對(duì)直播流進(jìn)行控制,如切斷直播流、封禁賬號(hào)等。

第二種是和CDN結(jié)合,直接對(duì)直播流進(jìn)行分析,識(shí)別結(jié)果分為色情、疑似色情、性感和正常,業(yè)務(wù)系統(tǒng)根據(jù)識(shí)別結(jié)果直接控制直播流。典型的企業(yè)是Viscovery,這套方案的優(yōu)點(diǎn)是實(shí)時(shí)性保證比較好,缺點(diǎn)是必須部署到CDN或自己的機(jī)房,使用成本相對(duì)高一些。

還有一種一站式直播解決方案提供商,他們的做法是,用戶只需在控制臺(tái)對(duì)鑒黃服務(wù)進(jìn)行配置就可以針對(duì)每個(gè)應(yīng)用、每一路直播流進(jìn)行實(shí)時(shí)審核。在控制臺(tái)中,云服務(wù)商實(shí)時(shí)將鑒黃結(jié)果返回,用戶可以直接查看色情直播和違規(guī)界面的截圖,同時(shí)可以對(duì)直播流進(jìn)行控制,切斷問(wèn)題直播流。該服務(wù)商還提供了短信、郵件和站內(nèi)信功能,避免漏掉任何一個(gè)非法視頻,給平臺(tái)造成損失,我們就使用了這種方式。

如何快速搭建一個(gè)完整的移動(dòng)直播系統(tǒng)?

三、播放器端需要做哪些工作?

在播放器端如何做到秒開(kāi),直播過(guò)程中保證畫面和聲音清晰度的同時(shí),穩(wěn)定、流程、無(wú)卡頓的直播流量,這些工作都需要播放器端配合服務(wù)端來(lái)做優(yōu)化,做到精確調(diào)度。

1、拉流

拉流實(shí)際是推流的逆過(guò)程。首先通過(guò)播放端獲取碼流,標(biāo)準(zhǔn)的拉流格式有RTMP、HLS、FLV等。RTMP是Adobe的專利協(xié)議,開(kāi)源軟件和開(kāi)源庫(kù)都支持的比較好,如開(kāi)源的librtmp庫(kù),播放端只要支持flashPlayer的就能非常簡(jiǎn)單的播放RTMP直播,直播延遲一般在1–3秒。

HLS是蘋果提出的基于HTTP的流媒體傳輸協(xié)議,HTML5可以直接打開(kāi)播放,通過(guò)微信、QQ等軟件分享出去,用戶也可以直接觀看直播,可以說(shuō)移動(dòng)直播app,HLS拉流協(xié)議是必須支持的,缺點(diǎn)是延遲通常大于10秒。FLV(HTTP-FLV)協(xié)議是使用HTTP協(xié)議傳輸流媒體內(nèi)容的一個(gè)協(xié)議,也不用擔(dān)心被Adobe的專利綁架,直播延遲同樣可以做到1–3秒。

各拉流協(xié)議的差異:

如何快速搭建一個(gè)完整的移動(dòng)直播系統(tǒng)?

我們使用的云服務(wù)的直播拉流技術(shù)提供了以上三種格式,滿足不同業(yè)務(wù)場(chǎng)景的需求,如對(duì)即時(shí)性要求較高或有互動(dòng)需求的可以采用RTMP或FLV格式進(jìn)行直播拉流播放;對(duì)于有回放或跨平臺(tái)需求的,推薦使用HLS。當(dāng)然,三種協(xié)議是可以同時(shí)使用的,分別用到自己的場(chǎng)景就可以了。

2、解碼和渲染

拉流獲取封裝的視頻數(shù)據(jù)后,必須通過(guò)解碼器解碼、渲染后才能在播放器上播放。它是編碼的逆過(guò)程,是指從音視頻的數(shù)據(jù)中提取原始數(shù)據(jù)。前面介紹的H.264和H.265編碼格式都是有損壓縮,所以在提取后的原始數(shù)據(jù),并非原始采樣數(shù)據(jù),存在一定的信息丟失。因此,在視頻體積最小的情況下通過(guò)各種編碼參數(shù)保留最好的原始畫面,成為了各視頻公司的核心機(jī)密。

考慮對(duì)高清的支持,解碼肯定還是要選擇硬解碼的。前面介紹過(guò),iOS系統(tǒng)由于硬件比較單一、比較封閉,支持的比較好,Android系統(tǒng)由于平臺(tái)差異非常大,編解碼要完全兼容各平臺(tái)還需要很多工作要做。

四、移動(dòng)直播中的交互系統(tǒng)

移動(dòng)直播中最常見(jiàn)的交互有聊天室(彈幕)、點(diǎn)贊、打賞和禮物等,交互系統(tǒng)涉及消息的實(shí)時(shí)性和互動(dòng)性,在技術(shù)實(shí)現(xiàn)上大多是使用IM的功能來(lái)實(shí)現(xiàn)的。對(duì)于在線人數(shù)比較多的房間,彈幕消息量是非常大,主播與用戶其實(shí)都看不過(guò)來(lái),為了緩解服務(wù)器壓力,在產(chǎn)品策略需要做一些必要的優(yōu)化。

1、聊天室

移動(dòng)直播中的彈幕交互是用戶和主播互動(dòng)的主要方式,實(shí)際上就是IM中的聊天室功能。聊天室和群聊功能類似,但聊天室的消息是不需要分發(fā)給不在線的用戶的,歷史消息也不需要查看,用戶只有進(jìn)入聊天室后才能查看聊天消息和群成員信息。面對(duì)復(fù)雜多變的網(wǎng)絡(luò)狀況,還需要根據(jù)用戶位置就近選擇近對(duì)應(yīng)運(yùn)營(yíng)商的單線機(jī)房接入彈幕消息服務(wù),讓彈幕更及時(shí)。

2、禮物系統(tǒng)

禮物系統(tǒng)更是絕大多數(shù)移動(dòng)直播平臺(tái)的標(biāo)配了,它是這些平臺(tái)主要的收入來(lái)源。送禮物的形式也增強(qiáng)了用戶和主播之間的互動(dòng)交流,也是主播依賴平臺(tái)的最主要原因。

禮物的收發(fā)在技術(shù)實(shí)現(xiàn)上也是用聊天室接口做的,通常采用IM中的自定義消息實(shí)現(xiàn),當(dāng)用戶收到或發(fā)送禮物時(shí)將自定義消息對(duì)應(yīng)的禮物圖形渲染出來(lái)。

以上就是我們?cè)谑褂昧说谌絊DK服務(wù)后總結(jié)出來(lái)的直播產(chǎn)品經(jīng)驗(yàn),希望能幫助到創(chuàng)業(yè)者和從業(yè)者們。

 

作者:蔣海兵,趣拍產(chǎn)品總監(jiān),直播行業(yè)老兵。

原文地址:http://www.leiphone.com/news/201607/Nhq9iveY5y5fQ3Gw.html

本文來(lái)源于人人都是產(chǎn)品經(jīng)理合作媒體@雷鋒網(wǎng),作者@蔣海兵

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 企業(yè)在選擇直播平臺(tái)時(shí),有一個(gè)硬性標(biāo)準(zhǔn):一定要選高清、專業(yè)、不卡頓、阿麥直播15868487935可移動(dòng)的直播平臺(tái)

    來(lái)自浙江 回復(fù)
  2. 大神,寫的好贊

    回復(fù)
  3. 太棒了 正是我現(xiàn)在需要了解的

    來(lái)自中國(guó) 回復(fù)
  4. 大神 太實(shí)在了 立刻收藏

    來(lái)自浙江 回復(fù)
  5. 大神,加個(gè)微信唄

    來(lái)自湖南 回復(fù)