伴隨智能硬件設(shè)備快速發(fā)展和網(wǎng)絡(luò)條件提升,實(shí)時(shí)語(yǔ)音視頻的應(yīng)用越來(lái)越廣泛,從互動(dòng)直播、到休閑游戲、再到陌生人社交,而如何保障實(shí)時(shí)互動(dòng)過(guò)程流暢不卡頓、如何消除回聲以及全球網(wǎng)絡(luò)節(jié)點(diǎn)部署調(diào)度成為了關(guān)鍵。即構(gòu)科技聯(lián)合創(chuàng)始人蔣寧波在LiveVideoStack Meet上以語(yǔ)音視頻社交為例,深度解析實(shí)時(shí)語(yǔ)音視頻互動(dòng)技術(shù),本文為分享的整理。
大家好,我是即構(gòu)科技的聯(lián)合創(chuàng)始人蔣寧波,今天分享的題目《實(shí)時(shí)語(yǔ)音視頻技術(shù)的深度解析》,希望和大家交流實(shí)時(shí)音視頻互動(dòng)的一些技術(shù)點(diǎn)。首先簡(jiǎn)單自我介紹下,我從2005年到2015年在騰訊工作,前期負(fù)責(zé)QQ Hummer部分重構(gòu)項(xiàng)目,后期負(fù)責(zé)騰訊QQ安全的工作,包括把QQ的安全能力開(kāi)放給其他企業(yè)使用。2015年聯(lián)合創(chuàng)立即構(gòu)科技,即構(gòu)科技是提供實(shí)時(shí)音視頻的云服務(wù)商,致力于提供全球最穩(wěn)定最高質(zhì)量的實(shí)時(shí)語(yǔ)音視頻云服務(wù),主要產(chǎn)品針對(duì)多人實(shí)時(shí)語(yǔ)音,多人實(shí)時(shí)視頻,和互動(dòng)直播。現(xiàn)有的客戶(hù)包括映客、花椒、一直播,喜馬拉雅FM,六間房、酷狗直播、自由之戰(zhàn)2和好未來(lái)等。
今天主要分四塊內(nèi)容跟大家一起交流,首先是通過(guò)兩年大量實(shí)時(shí)音視頻客戶(hù)的合作,看到了行業(yè)應(yīng)用的一些發(fā)展趨勢(shì),其次就是實(shí)時(shí)音視頻互動(dòng)的技術(shù)難點(diǎn),以及即構(gòu)科技解決這些問(wèn)題的思路,最后會(huì)分享如何選擇實(shí)時(shí)語(yǔ)音視頻云服務(wù)商。
行業(yè)趨勢(shì)
近幾年,伴隨手機(jī)等智能硬件設(shè)備以及網(wǎng)絡(luò)情況的提升,實(shí)時(shí)音視頻得到越來(lái)越廣泛的應(yīng)用,在娛樂(lè)化方面,從互動(dòng)直播,到集成音視頻SDK、帶有社交屬性的休閑小游戲,再到現(xiàn)在音視頻的陌生人社交應(yīng)用。從15年下半年到16年的千播大戰(zhàn),基本上,一二線(xiàn)的直播平臺(tái)都標(biāo)配了連麥直播,允許多個(gè)主播做實(shí)時(shí)互動(dòng);16年底到17年初,集成了音視頻的社交屬性的休閑小游戲異軍突起,最典型的就是狼人殺,還有一些棋牌類(lèi)游戲;現(xiàn)在最火爆的則是陌生人視頻社交應(yīng)用,像多人群聊社交產(chǎn)品Houseparty和青少年社交網(wǎng)絡(luò)Monkey等等,而且伴隨美顏、掛件這些圖像處理技術(shù)越來(lái)越成熟,更多的90后、00后等一批互聯(lián)網(wǎng)原住民將視頻社交融入到日常生活中。
實(shí)時(shí)音視頻互動(dòng)難點(diǎn)
對(duì)于一個(gè)實(shí)時(shí)互動(dòng)的音視頻系統(tǒng)而言,存在很多技術(shù)難點(diǎn),我從中摘取幾個(gè)比較重要的點(diǎn):首先是低延遲,如果要滿(mǎn)足比較流暢地進(jìn)行實(shí)時(shí)互動(dòng),那么單向的端到端的遲延大概要在400毫秒以下才能保證流暢溝通;第二點(diǎn)就是流暢性,你也很難想象在視頻過(guò)程中頻繁卡頓會(huì)有良好的互動(dòng);第三點(diǎn)是回聲消除,回聲的產(chǎn)生是揚(yáng)聲器播放的聲音經(jīng)過(guò)環(huán)境反射被麥克風(fēng)重新采集并傳輸給對(duì)方,這樣對(duì)方就會(huì)一直聽(tīng)到自己的回聲,整個(gè)互動(dòng)過(guò)程會(huì)非常難受;第四點(diǎn)是國(guó)內(nèi)外互通,隨著現(xiàn)在國(guó)內(nèi)同質(zhì)化產(chǎn)品越來(lái)越多,國(guó)內(nèi)的競(jìng)爭(zhēng)也異常激烈,很多廠(chǎng)商紛紛選擇出海,這時(shí)就需要做好海內(nèi)外的互通;第五點(diǎn)是海量并發(fā),當(dāng)然這不僅僅指實(shí)時(shí)音視頻了,基本對(duì)于任何一款互聯(lián)網(wǎng)產(chǎn)品而言都是必須要考慮的難點(diǎn)。
難點(diǎn)解決方案
接下來(lái)我將針對(duì)上面幾個(gè)技術(shù)難點(diǎn),跟大家分享一下我們即構(gòu)團(tuán)隊(duì)的解決思路和實(shí)踐經(jīng)驗(yàn)。
低延遲
首先,如果實(shí)時(shí)音視頻要保證低延遲,那么前端和后端的整個(gè)鏈條一定要做到極致的,比如前端的一些編碼算法、流控,甚至丟幀、追幀策略等等都要做到足夠好。另外,不同的業(yè)務(wù)場(chǎng)景下,編碼器的選擇也會(huì)有所區(qū)別,從而會(huì)帶來(lái)不同的編碼延遲,因此不同的業(yè)務(wù)場(chǎng)景能達(dá)到的延遲程度也是不一樣的。
其次,就是對(duì)推拉流網(wǎng)絡(luò)的選擇,通常的方案是讓需要實(shí)時(shí)互動(dòng)的用戶(hù)通過(guò)核心語(yǔ)音視頻網(wǎng)絡(luò)——像BGP這樣的優(yōu)質(zhì)節(jié)點(diǎn)來(lái)做語(yǔ)音視頻傳輸,而對(duì)于一些特定場(chǎng)景來(lái)說(shuō),比如互動(dòng)游戲會(huì)直播給一些圍觀(guān)用戶(hù)看,那么這里就需要做轉(zhuǎn)碼、轉(zhuǎn)協(xié)議、甚至混流,再通過(guò)內(nèi)容分發(fā)網(wǎng)絡(luò)去分發(fā)。像 內(nèi)容分發(fā)網(wǎng)絡(luò)本身天然就有做就近接入,但對(duì)于接入核心語(yǔ)音視頻網(wǎng)絡(luò)就需要有智能的調(diào)度策略來(lái)完成就近接入,以及跨運(yùn)營(yíng)商、跨區(qū)域的接入,比如可以采用上次登錄IP、常用IP和區(qū)域調(diào)度,甚至可以測(cè)速再去連接,當(dāng)然網(wǎng)絡(luò)調(diào)度的策略也需要根據(jù)業(yè)務(wù)群的分布仔細(xì)規(guī)劃,甚至采用多個(gè)策略配置權(quán)重的方式。
流暢性
要實(shí)現(xiàn)流暢性也會(huì)有很多的技術(shù)難點(diǎn)和策略,我主要會(huì)介紹其中幾種。第一個(gè)是可以做動(dòng)態(tài)伸縮的JitterBuffer,在網(wǎng)絡(luò)較差或者網(wǎng)絡(luò)抖動(dòng)比較劇烈的情況下,可以適當(dāng)增大JitterBuffer,從而降低一點(diǎn)點(diǎn)延遲來(lái)對(duì)抗抖動(dòng)。
第二個(gè)是快播和慢播技術(shù),在網(wǎng)絡(luò)較差的環(huán)境,可以在用戶(hù)無(wú)感知的條件下稍微降低播放速度,來(lái)應(yīng)對(duì)短暫網(wǎng)絡(luò)抖動(dòng)引起的立即卡頓,當(dāng)網(wǎng)絡(luò)恢復(fù)可以加快速度追回來(lái),但這種方式并非適合所有場(chǎng)景,比如對(duì)于節(jié)奏要求非常準(zhǔn)確的唱歌場(chǎng)景,當(dāng)播放速度稍微放慢就可以被感知。
第三個(gè)是碼率自適應(yīng),也就是以比較合適的碼率做動(dòng)態(tài)傳輸,為了保證流暢度甚至可以調(diào)整幀率和分辨率。語(yǔ)音視頻引擎會(huì)根據(jù)當(dāng)前網(wǎng)絡(luò)測(cè)速的結(jié)果和應(yīng)用所期望的碼率,動(dòng)態(tài)地調(diào)整碼率、幀率和分辨率,最終達(dá)到流暢觀(guān)看的用戶(hù)體驗(yàn)。
第四個(gè)是分層編碼、傳輸控制,在推流端做一些分層的編碼,這樣在拉流端可以動(dòng)態(tài)根據(jù)偵測(cè)到的網(wǎng)絡(luò)帶寬情況來(lái)拉取不同的數(shù)據(jù)去做渲染。分層編碼允許拉流端取選擇不同層次的視頻編碼數(shù)據(jù),網(wǎng)絡(luò)情況好的時(shí)候,就拉取較多層次的數(shù)據(jù);網(wǎng)絡(luò)情況差的情況下,就拉取基礎(chǔ)層次的數(shù)據(jù)。
第五個(gè)是動(dòng)態(tài)調(diào)度,當(dāng)在推拉流端監(jiān)測(cè)當(dāng)前推拉流質(zhì)量比較差,而且即使通過(guò)降低碼率、幀率和分辨率等策略已經(jīng)無(wú)法保證質(zhì)量,這時(shí)就可以選擇放棄這條鏈路,直接重新做選入、建立連接,當(dāng)然在這個(gè)過(guò)程中可能會(huì)出現(xiàn)短暫的停頓。
回聲消除
首先介紹下回聲消除的原理:對(duì)端發(fā)送的信號(hào)會(huì)先給到回聲消除的模塊,作為將來(lái)消除的參考信號(hào),再把信號(hào)給到揚(yáng)聲器播放,揚(yáng)聲器播放后由于周?chē)h(huán)境反射形成回聲,與真實(shí)的音頻輸入一同被麥克風(fēng)采集,這時(shí)采集到的輸入信號(hào)是帶有回聲的,回聲消除模塊會(huì)根據(jù)前面的參考信號(hào)生成濾波抵消掉回聲消后再發(fā)送出去。
原理聽(tīng)起來(lái)會(huì)比較簡(jiǎn)單,但在實(shí)際過(guò)程中卻蘊(yùn)藏著很多的難點(diǎn),比如回聲消除模塊接收的參考信號(hào)與最終被環(huán)境反射后的回聲本身就是存在差異的,此外設(shè)備也會(huì)極大的影響回聲消除,尤其是國(guó)內(nèi)的安卓機(jī)型特別多,比如國(guó)內(nèi)某手機(jī)廠(chǎng)商,從麥克風(fēng)采集音頻數(shù)據(jù)到提交中間有將近一百毫秒的延遲,這時(shí)回聲消除算法如何適應(yīng)這么長(zhǎng)回聲延遲的手機(jī)就很關(guān)鍵;再比如很多用戶(hù)在直播中都會(huì)用外置聲卡,甚至是模擬器,這無(wú)形中也會(huì)帶來(lái)回聲的延遲。除了設(shè)備,場(chǎng)地同樣存在很大的相關(guān)性,對(duì)于普通會(huì)議室,設(shè)置 40米的回聲延遲可能已經(jīng)足夠了,但一些大會(huì)場(chǎng)這種回聲延遲能達(dá)到將近上百米,這也是一種挑戰(zhàn)。
關(guān)于回聲消除,其實(shí)谷歌開(kāi)源的WebRTC提供了回聲消除模塊,但WebRTC的設(shè)計(jì)本身是為了在PC端實(shí)時(shí)音視頻互動(dòng)的場(chǎng)景,在移動(dòng)端的適應(yīng)性上就會(huì)差一些,尤其體現(xiàn)在安卓的一些低端機(jī)上。而相對(duì)來(lái)說(shuō),蘋(píng)果因?yàn)檎w硬件、軟件全是自己實(shí)現(xiàn)的,麥克風(fēng)、揚(yáng)聲器也都有聲學(xué)模型設(shè)計(jì),因此回聲消除的效果會(huì)比安卓好很多。即構(gòu)科技的音視頻引擎都是采用自研,在真機(jī)和模擬器等1000多的機(jī)型上測(cè)試過(guò),都可以做到很好的回聲消除。
國(guó)內(nèi)外互通
前面提到很多產(chǎn)品都會(huì)選擇出海,包括主打國(guó)內(nèi)市場(chǎng)的產(chǎn)品也會(huì)有一些海外用戶(hù),因此流媒體數(shù)據(jù)和控制信令就要做好跨國(guó)的互通,這就需要考慮在全球合理布置一些中繼節(jié)點(diǎn)。
這張圖就是一個(gè)典型的中繼續(xù)傳,北京用戶(hù)和迪拜用戶(hù)之間要做視頻溝通,根據(jù)就近接入原則他們會(huì)分別連接當(dāng)?shù)氐墓?jié)點(diǎn),而這兩個(gè)節(jié)點(diǎn)間如果互拉,效果會(huì)非常差,這時(shí)就需要布置適合的中繼節(jié)點(diǎn),比如香港、新加坡、日本等等,數(shù)據(jù)路徑的選擇是需要根據(jù)業(yè)務(wù)側(cè)決定的,也就是說(shuō)在物理鏈路路由之上還要再有一條業(yè)務(wù)的路由表,需要根據(jù)用戶(hù)場(chǎng)景制定,包括用戶(hù)分布、用戶(hù)訪(fǎng)問(wèn)頻率、高頻段峰值等等,可能每次的路由都會(huì)有所不同。
海量并發(fā)
海量并發(fā)是所有互聯(lián)網(wǎng)產(chǎn)品都會(huì)遇到的問(wèn)題,這里就不再展開(kāi),主要要考慮負(fù)載均衡,如何平滑擴(kuò)容,對(duì)于無(wú)法覆蓋的地方要做代理調(diào)度,甚至需要考慮容災(zāi)、接入層的設(shè)計(jì)等等。
如何選擇實(shí)時(shí)語(yǔ)音視頻云服務(wù)商
實(shí)時(shí)語(yǔ)音視頻的技術(shù)門(mén)檻相對(duì)比較高,如果依靠自己研發(fā),可能即使會(huì)投入很多開(kāi)發(fā)成本也無(wú)法與匹配市場(chǎng)快速發(fā)展的節(jié)奏。現(xiàn)在實(shí)時(shí)音視頻云服務(wù)已經(jīng)十分成熟,其實(shí)不妨“讓專(zhuān)業(yè)的人去做專(zhuān)業(yè)的事”。而對(duì)于實(shí)時(shí)語(yǔ)音視頻云服務(wù)商的選擇也大致可以歸為幾點(diǎn):
第一點(diǎn),肯定是技術(shù)過(guò)硬。測(cè)試產(chǎn)品質(zhì)量是很好的選型方法,測(cè)試的指標(biāo)包括延遲時(shí)間、回聲消除的效果以及多機(jī)型兼容性等等。
第二點(diǎn),是否被頂級(jí)廠(chǎng)商地大規(guī)模驗(yàn)證過(guò)。很多系統(tǒng)在小規(guī)模并發(fā)時(shí)看起來(lái)質(zhì)量很好而且非常穩(wěn)定,但在真實(shí)現(xiàn)網(wǎng)環(huán)境下一旦大規(guī)模并發(fā)上來(lái)的時(shí)候就會(huì)出現(xiàn)各種各樣的問(wèn)題。因此選擇的產(chǎn)品必須得能在真實(shí)的復(fù)雜網(wǎng)絡(luò)中支持大規(guī)模并發(fā)。
第三點(diǎn),系統(tǒng)接口要足夠簡(jiǎn)單、靈活,可以保證基礎(chǔ)功能的廠(chǎng)商快速集成,同時(shí)也要能滿(mǎn)足高端客戶(hù)定制化能力的接入。從采集、前處理、編碼、推流、拉流、解碼和渲染一整套流程中每個(gè)環(huán)節(jié)都是要完全解耦的,這樣就可以集成第三方、甚至客戶(hù)自身的技術(shù)模塊。
第四點(diǎn)是技術(shù)服務(wù)足夠好,對(duì)需求的響應(yīng)足夠快,而且要有完善的運(yùn)營(yíng)支撐體系,能快速定位問(wèn)題,因此對(duì)于監(jiān)控告警、日志的上報(bào)采集就顯得非常重要。
圖:秒級(jí)原始數(shù)據(jù)
-
音頻技術(shù)
+關(guān)注
關(guān)注
1文章
141瀏覽量
24700 -
視頻技術(shù)
+關(guān)注
關(guān)注
1文章
109瀏覽量
22947
原文標(biāo)題:語(yǔ)音視頻社交背后技術(shù)深度解析
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論