丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
業(yè)界 正文
發(fā)私信給冼牛
發(fā)送

0

為了互動(dòng)直播,如何讓直播技術(shù)實(shí)現(xiàn)低延遲?

本文作者: 冼牛 2016-12-03 22:38
導(dǎo)語(yǔ):互動(dòng)直播技術(shù)已經(jīng)成為直播平臺(tái)的標(biāo)配。沒(méi)有互動(dòng)直播技術(shù)的直播平臺(tái)無(wú)法躋身行業(yè)第一梯隊(duì)。

雷鋒網(wǎng)按:本文作者冼牛,即構(gòu)科技市場(chǎng)運(yùn)營(yíng)總監(jiān),香港大學(xué)MBA,十年研發(fā)經(jīng)驗(yàn),音視頻云服務(wù)技術(shù)專家,專注連麥互動(dòng)直播技術(shù)應(yīng)用研究。 本文系雷鋒網(wǎng)獨(dú)家文章。

借《讓子彈飛》中姜文的名言作為開(kāi)場(chǎng)白:讓子彈飛一會(huì)兒。

某名人吐槽說(shuō):還要飛一會(huì)兒哪?這子彈的延遲也忒大了。

 該名人就是鄙人。

為什么低延遲很重要?


低延遲的子彈可以擊殺敵軍千米之外,低延遲的直播技術(shù)可以秒殺粉絲千里之外。

互動(dòng)直播技術(shù)已經(jīng)成為直播平臺(tái)的標(biāo)配。沒(méi)有互動(dòng)直播技術(shù)的直播平臺(tái)無(wú)法躋身直播行業(yè)第一梯隊(duì)。而要獲得互動(dòng)直播技術(shù),實(shí)現(xiàn)低延遲是必須的。

因此低延遲很重要。

那么,直播技術(shù)如何實(shí)現(xiàn)低延遲呢?

 請(qǐng)?jiān)试S我根據(jù)即構(gòu)科技直播技術(shù)的經(jīng)驗(yàn),和各位分享一下如何實(shí)現(xiàn)低延遲。

 即構(gòu)科技的連麥互動(dòng)直播技術(shù),連麥方的延遲400毫秒,觀看方的延遲1秒左右。目前映客直播,花椒直播,一直播和栗子直播都采用了即構(gòu)科技的連麥互動(dòng)直播技術(shù)。因此,這個(gè)直播技術(shù)經(jīng)驗(yàn)是經(jīng)過(guò)市場(chǎng)驗(yàn)證的,是從實(shí)操中得來(lái)的,而不是單憑理論分析得到的。

 一般來(lái)說(shuō),延遲低于800毫秒, 才能夠在直播中連麥,做一些比較高頻的互動(dòng),比如相聲或者談話節(jié)目。如果延遲高于800毫秒,在直播中連麥的效果就無(wú)法被觀眾接受了。因此,延遲400毫秒的直播技術(shù),是有足夠的余地去實(shí)現(xiàn)連麥互動(dòng)直播業(yè)務(wù)的。

要在直播技術(shù)中實(shí)現(xiàn)低延遲,有一個(gè)簡(jiǎn)單而要?jiǎng)?wù)實(shí)的哲學(xué):

1)選擇一條最優(yōu)的路徑;

2)在這條路徑上做到最優(yōu);

3)保持所有路徑優(yōu)質(zhì)。

下面我將按照這個(gè)思路來(lái)論述如何實(shí)現(xiàn)低延遲。 

選擇一條最優(yōu)的路徑

要選擇一條最優(yōu)的路徑,有很多方法。目前使用比較多的是網(wǎng)絡(luò)測(cè)速,用戶個(gè)人連接數(shù)據(jù)分析,和用戶群體連接數(shù)據(jù)分析等幾種方法來(lái)選擇最優(yōu)的網(wǎng)絡(luò)路徑。

  • 網(wǎng)絡(luò)測(cè)速

推流端在推流之前,向各個(gè)路徑發(fā)送簡(jiǎn)單的數(shù)據(jù)包,然后根據(jù)數(shù)據(jù)包響應(yīng)的時(shí)間來(lái)推測(cè)哪條路徑最快。這個(gè)方法比較簡(jiǎn)單,有效然而有限:選出來(lái)的路徑只是在該測(cè)試時(shí)間點(diǎn)最快的,而網(wǎng)絡(luò)狀況是隨著時(shí)間變化的;另外,簡(jiǎn)單數(shù)據(jù)包測(cè)出來(lái)速度比較快,并不代表流媒體傳輸數(shù)據(jù)速度也比較快。因此,這個(gè)方法得到的結(jié)果只能作為一個(gè)指標(biāo)來(lái)參考。

  • 大數(shù)據(jù)分析

為了回避單個(gè)采樣時(shí)間點(diǎn)測(cè)速導(dǎo)致的偏差,可以采取對(duì)歷史大數(shù)據(jù)進(jìn)行分析,預(yù)測(cè)哪個(gè)網(wǎng)絡(luò)路徑最優(yōu)。對(duì)歷史大數(shù)據(jù)進(jìn)行的分析分為兩個(gè)維度:用戶個(gè)人連接數(shù)據(jù)分析和用戶群體連接數(shù)據(jù)分析。

1. 用戶個(gè)人連接數(shù)據(jù)分析

每個(gè)主播用戶的使用歷史數(shù)據(jù)是有規(guī)律可循的。通過(guò)分析這些歷史數(shù)據(jù),可以發(fā)現(xiàn)主播用戶從哪里接入,在什么時(shí)候接入,接入到哪個(gè)服務(wù)器,走什么路徑的效果最優(yōu)。這些歷史數(shù)據(jù)積累得越豐富,歷史數(shù)據(jù)分析得出來(lái)的結(jié)論就越靠譜。這個(gè)方法能夠發(fā)現(xiàn)個(gè)人主播用戶周期性的網(wǎng)絡(luò)連接情況,能找出大部分時(shí)間連接效率最優(yōu)的網(wǎng)絡(luò)路徑。然而,這個(gè)方法的缺點(diǎn)是:數(shù)據(jù)采樣只是基于單個(gè)用戶,采樣點(diǎn)太少,沒(méi)有全局考慮到該用戶所在地區(qū)的整體網(wǎng)絡(luò)連接情況。

2. 用戶群體連接數(shù)據(jù)分析

為了彌補(bǔ)用戶個(gè)人連接數(shù)據(jù)分析的不足,這里引入另外一個(gè)維度的數(shù)據(jù)分析:某地區(qū)用戶群體連接數(shù)據(jù)的分析。針對(duì)某用戶所在區(qū)域的用戶群進(jìn)行歷史數(shù)據(jù)分析,可以發(fā)現(xiàn)這個(gè)區(qū)域網(wǎng)絡(luò)連接隨著時(shí)間變化的規(guī)律,找出在不同的時(shí)間點(diǎn),在不同的接入點(diǎn)連接到哪個(gè)服務(wù)器最好。

單點(diǎn)網(wǎng)絡(luò)測(cè)速,用戶個(gè)人連接數(shù)據(jù)分析,再加上用戶群體連接數(shù)據(jù)分析綜合得到結(jié)論,就能比較有效地預(yù)測(cè)哪條路徑最優(yōu)。選路這部分需要不斷地優(yōu)化,才能積累豐富的用戶數(shù)據(jù),同時(shí)適應(yīng)網(wǎng)絡(luò)的變化。

在這條路徑上做到最優(yōu)

選好最優(yōu)的路徑以后,剩下的就是要在該路徑上做到最優(yōu)。這條路徑包括了下面幾個(gè)環(huán)節(jié):采集,編碼,推流,轉(zhuǎn)碼,分發(fā),拉流,解碼和渲染。在一個(gè)實(shí)時(shí)的音視頻系統(tǒng)架構(gòu)里,每個(gè)環(huán)節(jié)都會(huì)有一定程度的優(yōu)化空間。行業(yè)內(nèi)的小伙伴在這條路上已經(jīng)有過(guò)很多探索,這里不想重復(fù)討論別人已經(jīng)探索過(guò)的議題,而只重點(diǎn)討論下面幾個(gè)關(guān)鍵點(diǎn)。

  • 選擇協(xié)議

傳輸協(xié)議的選擇十分重要。傳輸協(xié)議一定程度上就決定了延遲的范圍。選擇傳輸協(xié)議的時(shí)候要考慮是推流端還是拉流端。推流端的協(xié)議有RTMP, WebRTC和基于UDP的私有協(xié)議。

1. RTMP是基于TCP的標(biāo)準(zhǔn)協(xié)議,CDN網(wǎng)絡(luò)普遍支持,也能做到相對(duì)比較低的延遲。即構(gòu)科技的互動(dòng)直播技術(shù)在推流端使用RTMP協(xié)議,拉流端兼容三種協(xié)議:RTMP,HLS和FLV。HLS協(xié)議的延遲比較大,在需要進(jìn)行連麥互動(dòng)的場(chǎng)景下,不應(yīng)該使用HLS協(xié)議。

2. WebRTC的好處在于用戶體驗(yàn)好,不需要安裝東西,分享一個(gè)鏈接就可以看。但是它有一個(gè)缺點(diǎn),就是WebRTC是Google推的一項(xiàng)技術(shù),除了Google Chrome和Opera支持WebRTC,其他瀏覽器大部分不支持WebRTC。

換一句話說(shuō),40%的瀏覽器支持WebRTC,剩下60%瀏覽器不支持,所以適用范圍就比較局限。然后,在中國(guó)國(guó)內(nèi),WebRTC在Google Chrome上的表現(xiàn)也大打折扣。最后,因?yàn)闉g覽器沒(méi)有開(kāi)放核心的能力,所以在瀏覽器上運(yùn)行的協(xié)議比較難以做到比較低的延遲。

3. 基于UDP的私有協(xié)議十分適合做實(shí)時(shí)音視頻系統(tǒng),它是面向無(wú)連接的,避免了TCP做網(wǎng)絡(luò)質(zhì)量控制所需要的開(kāi)銷,能夠做到比較低的延遲。但是它也有一個(gè)缺點(diǎn),那就是私有協(xié)議的兼容性不好。

CDN支持標(biāo)準(zhǔn)的RTMP協(xié)議,但是不支持基于UDP的私有協(xié)議。為了吸納UDP的優(yōu)點(diǎn),而避免UDP的缺點(diǎn),即構(gòu)科技的互動(dòng)直播技術(shù)采用了基于UDP的私有協(xié)議作為補(bǔ)充,在有必要的時(shí)候用來(lái)彌補(bǔ)RTMP協(xié)議的不足。比如說(shuō),只有在網(wǎng)絡(luò)環(huán)境比較惡劣或者在跨國(guó)互通的情況下,才使用基于UDP的私有協(xié)議;比如說(shuō),只在推流端到媒體服務(wù)器這一段才使用基于UDP的私有協(xié)議,而從媒體服務(wù)器轉(zhuǎn)推流到CDN網(wǎng)絡(luò)這一段采用RTMP協(xié)議,在這兩段之間通過(guò)把UDP私有協(xié)議轉(zhuǎn)換成RTMP協(xié)議來(lái)進(jìn)行適配和銜接。這樣一來(lái),即構(gòu)科技的直播方案既擁有超低延遲的優(yōu)勢(shì),又保留了標(biāo)準(zhǔn)協(xié)議普遍被CDN網(wǎng)絡(luò)支持的好處。

  • 前向糾錯(cuò)和丟包重傳

前向糾錯(cuò)簡(jiǎn)稱FEC,英文全稱Forward Error Correction,是通過(guò)提前采取措施來(lái)對(duì)抗網(wǎng)絡(luò)損傷。丟包重傳主要針對(duì)丟包的情況下,有針對(duì)性地對(duì)丟失的數(shù)據(jù)包進(jìn)行高效率的重傳。準(zhǔn)確來(lái)說(shuō),它們的直接目的不是為了降低延遲,而是為了對(duì)抗網(wǎng)絡(luò)損傷。在不可預(yù)測(cè)的網(wǎng)絡(luò)環(huán)境中,能很好地處理網(wǎng)絡(luò)抖動(dòng)帶來(lái)的負(fù)面影響,間接也會(huì)降低了延遲,同時(shí)保證了穩(wěn)定性和流暢性。

一般來(lái)說(shuō),前向糾錯(cuò)和丟包重傳互補(bǔ)使用,前者屬于前驗(yàn)的方法,比較節(jié)省時(shí)間,但是占用多余的帶寬;后者屬于后驗(yàn)的方法,比較節(jié)省帶寬,但是會(huì)消耗比較多的時(shí)間。在網(wǎng)絡(luò)比較差情況下,丟包率比較高,那么可以通過(guò)前向糾錯(cuò)方法來(lái)保證信息完整送達(dá)。比如說(shuō)發(fā)送冗余信息,確保在一定丟包率之下,接受方也能準(zhǔn)確而完整的還原發(fā)送方所要發(fā)送的信息。在網(wǎng)絡(luò)相對(duì)比較好的情況下,丟包率比較低,那么可以通過(guò)丟包重傳的方法來(lái)保證信息完整送達(dá)。比如說(shuō)針對(duì)丟掉的數(shù)據(jù)包,通過(guò)高效的機(jī)制進(jìn)行重傳,確保接受方能夠完整的收到發(fā)送方所要發(fā)送的消息。

  • 緩沖自適應(yīng)

由于有網(wǎng)絡(luò)抖動(dòng)的存在,數(shù)據(jù)包的到達(dá)不是勻速的。

最直接的降低延遲的方法就是把緩沖隊(duì)列的長(zhǎng)度設(shè)置為零,接收到什么數(shù)據(jù)包就直接渲染什么數(shù)據(jù)包,然而這樣做的后果就是播放不流暢,會(huì)出現(xiàn)卡頓。

因此,延遲和流暢兩者本身就是一對(duì)矛盾的因素。我們要做的是尋找低延遲和流暢之間的平衡點(diǎn),尋找平衡點(diǎn)的有效方法就是建立緩沖隊(duì)列。在拉流端和混流服務(wù)器都需要建立緩沖隊(duì)列。對(duì)于一個(gè)實(shí)時(shí)系統(tǒng)來(lái)說(shuō),緩沖隊(duì)列的長(zhǎng)度必須不是固定的,而是自適應(yīng)的:當(dāng)網(wǎng)絡(luò)很好的時(shí)候,緩沖隊(duì)列的長(zhǎng)度就會(huì)變得比較短,接近零,甚至為零;當(dāng)網(wǎng)絡(luò)不好的情況下,緩沖隊(duì)列的長(zhǎng)度會(huì)變得比較長(zhǎng),但是不能超過(guò)能接受的上限,畢竟緩沖隊(duì)列的長(zhǎng)度本質(zhì)上就是延遲的時(shí)間。

另外,還可以把緩沖自適應(yīng)技術(shù)和快播或慢播技術(shù)結(jié)合起來(lái)使用。當(dāng)網(wǎng)絡(luò)由差轉(zhuǎn)好的情況下,可以適當(dāng)?shù)牟サ每煲稽c(diǎn),盡快縮短緩沖隊(duì)列的長(zhǎng)度。當(dāng)網(wǎng)絡(luò)由好轉(zhuǎn)差的情況下,可以適當(dāng)?shù)牟サ寐稽c(diǎn),讓緩沖隊(duì)列適當(dāng)變長(zhǎng),保持流暢性??觳ズ吐ナ墙Y(jié)合觀眾的心理學(xué)模型,在適合快播和慢播的條件下采用,讓觀眾沒(méi)有覺(jué)察出播放速度的變化,同時(shí)整體感覺(jué)也顯得既流暢又低延遲。

  • 碼率自適應(yīng)

由于網(wǎng)絡(luò)環(huán)境的復(fù)雜多變,碼率要能自動(dòng)適應(yīng)網(wǎng)絡(luò)狀況的變化,也就是所謂的碼率自適應(yīng)。 在網(wǎng)絡(luò)比較差的時(shí)候,要降低碼率,讓直播保持低延遲和流暢性;在網(wǎng)絡(luò)比較好的時(shí)候,要提高碼率,讓直播保持高清畫(huà)質(zhì)。為了做到碼率自適應(yīng),對(duì)協(xié)議選擇也很考究。RTMP對(duì)碼率自適應(yīng)能做的事情比較有限,因?yàn)樗赥CP, 而TCP 下層已經(jīng)做了網(wǎng)絡(luò)質(zhì)量控制,當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞的時(shí)候,上層應(yīng)用不會(huì)及時(shí)得到通知?;赨DP的私有協(xié)議更加適合做碼率自適應(yīng),因?yàn)樗赨DP,而UDP只負(fù)責(zé)發(fā)包和收包,把網(wǎng)絡(luò)質(zhì)量控制交給應(yīng)用層來(lái)做,這樣應(yīng)用層會(huì)有足夠的空間來(lái)實(shí)現(xiàn)碼率自適應(yīng)。

保持所有路徑優(yōu)質(zhì)

那么,為了在直播技術(shù)中實(shí)現(xiàn)低延遲,要選擇一條最優(yōu)路徑,還要在該路徑上做到最優(yōu)。故事講完了嗎?沒(méi)有,我們忘記了一個(gè)前提:整體的道路網(wǎng)絡(luò)必須要足夠好。道路網(wǎng)絡(luò)不好,怎么選都是爛泥土路,選了爛泥土路,如何能夠跑的快呢?因此,要實(shí)現(xiàn)低延遲,網(wǎng)絡(luò)基建必須要足夠好。網(wǎng)絡(luò)基建的質(zhì)量可以通過(guò)以下三個(gè)方面來(lái)提高:

  • 全網(wǎng)充分覆蓋

一般來(lái)說(shuō),音視頻云服務(wù)的機(jī)房會(huì)分布在核心的幾個(gè)樞紐城市,邊遠(yuǎn)地區(qū)的用戶的訪問(wèn)質(zhì)量是得不到保障的。另外,在中國(guó)國(guó)內(nèi),各個(gè)網(wǎng)絡(luò)運(yùn)營(yíng)商的覆蓋面是參錯(cuò)不齊的,有些網(wǎng)絡(luò)運(yùn)營(yíng)商對(duì)一些邊遠(yuǎn)地區(qū)也是覆蓋不足的。為了做到全網(wǎng)充分覆蓋,可以采用多節(jié)點(diǎn)代理和重定向,來(lái)確保全網(wǎng)充分覆蓋無(wú)盲點(diǎn)。這個(gè)需要經(jīng)過(guò)實(shí)際充分測(cè)試,才能夠驗(yàn)證各類網(wǎng)絡(luò)可以充分連通。

  • 全方位保障QoE

網(wǎng)絡(luò)接入點(diǎn)的覆蓋面對(duì)QoE(Quality of Experience)十分的重要。從即構(gòu)的經(jīng)驗(yàn)來(lái)看,通過(guò)部署遍布全球范圍的接入點(diǎn)能夠確保這一點(diǎn)。另外,由于在中國(guó)國(guó)內(nèi)存在有“兩張大網(wǎng),多張小網(wǎng)”這樣一個(gè)局面,BGP在這種情況下十分有必要。BGP能夠很好地解決不同網(wǎng)絡(luò)之間的互通問(wèn)題。即構(gòu)所有的網(wǎng)絡(luò)接入點(diǎn)都使用了BGP。

  • 優(yōu)質(zhì)的網(wǎng)絡(luò)節(jié)點(diǎn)資源

音視頻云服務(wù)是跑在網(wǎng)絡(luò)基建上面的,下層網(wǎng)絡(luò)基建的質(zhì)量必須要優(yōu)質(zhì),而且音視頻云服務(wù)和下層網(wǎng)絡(luò)基建也要深度結(jié)合。為了實(shí)現(xiàn)直播技術(shù)的低延遲,最好能對(duì)接一線的網(wǎng)絡(luò)運(yùn)營(yíng)商,這樣部署的網(wǎng)絡(luò)節(jié)點(diǎn)資源無(wú)論是數(shù)量還是質(zhì)量上都是有充分的保障。這也是即構(gòu)團(tuán)隊(duì)在過(guò)去十多年海量用戶運(yùn)營(yíng)的過(guò)程中總結(jié)出來(lái)的經(jīng)驗(yàn)。

綜合來(lái)說(shuō),要實(shí)現(xiàn)直播技術(shù)低延遲,必須要選好一條最優(yōu)的路徑,然后在該路徑上做到最優(yōu),最后要確保所有路徑的質(zhì)量都是好的。道理就是那么簡(jiǎn)單,實(shí)現(xiàn)起來(lái)就是那么難,魔鬼都出在細(xì)節(jié)上。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

分享:
相關(guān)文章

專欄作者

即構(gòu)科技資深架構(gòu)師(微信xianniu1216),北京郵電大學(xué)計(jì)算機(jī)碩士,香港大學(xué)MBA,實(shí)時(shí)音視頻技術(shù)專家,專注連麥直播、視頻社交和游戲語(yǔ)音領(lǐng)域。
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)