主頁(http://www.130131.com):詳解音視頻直播中的低延時 音視頻實時通訊的應(yīng)用場景已經(jīng)隨處可見,從“吃雞”的語音對講、直播連麥、直播答題組隊開黑,再到銀行視頻開戶等。對于開發(fā)者來講,除了關(guān)注如何能快速實現(xiàn)不同應(yīng)用場景重點額音視頻通訊,另一個更需要關(guān)注的可能就是“低延時”。但是,到底實時音視頻傳輸延時應(yīng)該如何“低”,才能滿足你的應(yīng)用場景呢? 延時的產(chǎn)生與優(yōu)化在聊低延時之前,我們先要講清延時是如何產(chǎn)生的。由于音視頻的傳輸路徑一樣,我們可以通過一張圖來說明延時的產(chǎn)生:
在音視頻傳輸過程中,在不同階段都會產(chǎn)生延時?傮w可以分為三類:
T1:設(shè)備端上的延時音視頻數(shù)據(jù)在設(shè)備端上產(chǎn)生延時還可以細分。設(shè)備端上的延時主要與硬件性能、采用的編解碼算法、音視頻數(shù)據(jù)量相關(guān),設(shè)備端上的延時可達到 30~200ms,甚至更高。如上表所示,音頻與視頻分別在采集端或播放端產(chǎn)生延時的過程基本相同,但產(chǎn)生延時的原因不同。 音頻在設(shè)備端上的延時:
視頻在設(shè)備端上的延時:
另外,在設(shè)備端,CPU、緩存通常會同時處理來自多個應(yīng)用、外接設(shè)備的請求,如果某個問題設(shè)備的請求占用了 CPU,會導(dǎo)致音視頻的處理請求出現(xiàn)延時。以音頻為例,當出現(xiàn)該狀況時,CPU 可能無法及時填充音頻緩沖區(qū),音頻會出現(xiàn)卡頓。所以設(shè)備整體的性能,也會影響音視頻采集、編解碼與播放的延時。 T2:端與服務(wù)器間的延時影響采集端與服務(wù)器、服務(wù)器與播放端的延時的有以下主幾個因素:客戶端同服務(wù)間的物理距離、客戶端和服務(wù)器的網(wǎng)絡(luò)運營商、終端網(wǎng)絡(luò)的網(wǎng)速、負載和網(wǎng)絡(luò)類型等。如果服務(wù)器就近部署在服務(wù)區(qū)域、服務(wù)器與客戶端的網(wǎng)絡(luò)運營商一致時,影響上下行網(wǎng)絡(luò)延時的主要因素就是終端網(wǎng)絡(luò)的負載和網(wǎng)絡(luò)類型。一般來說,無線網(wǎng)絡(luò)環(huán)境下的傳輸延時波動較大,傳輸延時通常在 10~100ms 不定。而有線寬帶網(wǎng)絡(luò)下,同城的傳輸延時能較穩(wěn)定的低至 5ms~10ms。但是在國內(nèi)有很多中小運營商,以及一些交叉的網(wǎng)絡(luò)環(huán)境、跨國傳輸,那么延時會更高。 T3:服務(wù)器間的延時在此我們要要考慮兩種情況,第一種,兩端都連接著同一個邊緣節(jié)點,那么作為最優(yōu)路徑,數(shù)據(jù)直接通過邊緣節(jié)點進行轉(zhuǎn)發(fā)至播放端;第二種,采集端與播放端并不在同一個邊緣節(jié)點覆蓋范圍內(nèi),那么數(shù)據(jù)會經(jīng)由“靠近”采集端的邊緣節(jié)點傳輸至主干網(wǎng)絡(luò),然后再發(fā)送至“靠近”播放端的邊緣節(jié)點,但這時服務(wù)器之間的傳輸、排隊還會產(chǎn)生延時。僅以骨干網(wǎng)絡(luò)來講,數(shù)據(jù)傳輸從黑龍江到廣州大約需要 30ms,從上海到洛杉磯大約需要 110ms~130ms。 在實際情況下,我們?yōu)榱私鉀Q網(wǎng)絡(luò)不佳、網(wǎng)絡(luò)抖動,會在采集設(shè)備端、服務(wù)器、播放端增設(shè)緩沖策略。一旦觸發(fā)緩沖策略就會產(chǎn)生延時。如果卡頓情況多,延時會慢慢積累。要解決卡頓、積累延時,就需要優(yōu)化整個網(wǎng)絡(luò)狀況。 綜上所述,由于音視頻在采集與播放端上的延時取決于硬件性能、編解碼內(nèi)核的優(yōu)化,不同設(shè)備,表現(xiàn)不同。所以通常市面上常見的“端到端延時”指的是 T2+T3。 延時低≠通話質(zhì)量可靠不論是教育、社交、金融,還是其它場景下,大家在開發(fā)產(chǎn)品時可能會認為“低延時”一定就是最好的選擇。但有時,這種“追求極致”也是陷入誤區(qū)的表現(xiàn),低延時不一定意味著通訊質(zhì)量可靠。由于音頻與視頻本質(zhì)上的差異,我們需要分別來講實時音頻、視頻的通訊質(zhì)量與延時之間的關(guān)系。 音頻質(zhì)量與延時
音頻采樣示意圖 影響實時音頻通訊質(zhì)量的因素包括:音頻采樣率、碼率、延時。音頻信息其實就是一段以時間為橫軸的正弦波,它是一段連續(xù)的信號(如上圖)。
假設(shè)網(wǎng)絡(luò)狀態(tài)穩(wěn)定不變,那么采樣率越高、碼率越高,音質(zhì)就越好,但是相應(yīng)單個采樣信息量就越大,那么傳輸時間可能會相對更長。 對照我們之前的公式,如果想要達到低延時,那么可以提高網(wǎng)絡(luò)傳輸效率,比如提高帶寬、網(wǎng)絡(luò)速度,這在實驗室環(huán)境下可以輕易實現(xiàn)。但放到生活環(huán)境中,弱網(wǎng)、中小運營商等不可控的問題必定會影響網(wǎng)絡(luò)傳輸效率,最后結(jié)果就是通訊質(zhì)量沒有保障。還有一種方法,就是降低碼率,那么會損失音質(zhì)。 視頻質(zhì)量與延時 影響實時視頻質(zhì)量的因素包括:碼率、幀率、分辨率、延時。其中視頻的碼率與音頻碼率相似,是指單位時間傳輸?shù)臄?shù)據(jù)位數(shù)。碼率越大,畫面細節(jié)信息越豐富,視頻文件體積越大。
在分辨率一定的情況下,碼率與清晰度成正比關(guān)系,碼率越高,圖像越清晰;碼率越低,圖像越不清晰。 在實時視頻通話情況下,會出現(xiàn)多種質(zhì)量問題,比如:與編解碼相關(guān)的畫面糊、不清晰、畫面跳躍等現(xiàn)象,因網(wǎng)絡(luò)傳輸問題帶來的延時、卡頓等。所以解決了低延時,只是解決了實時音頻通訊的一小部分問題而已。 綜上來看,如果在網(wǎng)絡(luò)傳輸穩(wěn)定的情況下,想獲得越低的延時,就需要在流暢度、視頻清晰度、音頻質(zhì)量等方面進行權(quán)衡。 我們通過下表看到每個行業(yè)對實時音視頻部分特性的大致需求。但是每個行業(yè),不僅對低延時的要求不同,對延時、音質(zhì)、畫質(zhì),甚至功耗之間的平衡也有要求。在有些行業(yè)中,低延時并非永遠排在首位。
游戲場景在手游場景下,不同游戲類型對實時音視頻的要求不同,比如狼人殺這樣的桌游,語音溝通是否順暢,對游戲體驗影響很大,所以對延時要求較高。其它類型游戲具體如下方表格所示。
但滿足低延時,并不意味著能滿足手游開發(fā)的要求。因為手游開發(fā)本身存在很多痛點,比如功耗、安裝包體積、安全性等。從技術(shù)層面講,將實時音視頻與手游結(jié)合時,手游開發(fā)關(guān)注的問題有兩類:性能類與體驗類。
在將實時音視頻與手游結(jié)合時,除了延時,更注重包的大小、功耗等。安裝包的大小直接影響用戶是否安裝,而功耗則直接影響游戲體驗。 社交直播場景目前的社交直播產(chǎn)品按照功能類型分有僅支持純音頻社交的,比如荔枝 FM;還有音視頻社交的,比如陌陌。這兩類場景對實時音視頻的要求包括:
直播答題場景在直播答題場景中,對實時音視頻的要求主要有如下兩點:
我們以前經(jīng)常能看到主持人說完一道題,題目卻還沒發(fā)到手機上,最后只剩 3 秒的答題時間,甚至沒看到題就已出局。該場景的痛點不是低延時,而是直播音視頻與題目的同步,保證所有人公平,有錢分。 K 歌合唱場景天天 K 歌、唱吧等 K 歌類應(yīng)用中,都有合唱功能,主流形式是 A 用戶上傳完整錄音,B 用戶再進行合唱。實現(xiàn)實時合唱的主要需求有如下幾點:
在這個場景中,兩人的歌聲與音樂三者之間的同步給低延時提出了很高的要求。同時,音質(zhì)也是關(guān)鍵,如果為了延時而大幅降低音質(zhì),就偏離了 K 歌應(yīng)用的初衷。 金融場景對于核保、銀行開戶來講,需要一對一音視頻通話。由于金融業(yè)特殊性,該類應(yīng)用對實時音視頻的需求,按照重要性來排序如下:
在這個場景中,低延時不是關(guān)鍵。重要的是,要保證安全性、雙錄功能和系統(tǒng)平臺的兼容。 在線教育在線教育主要分為兩類:非 K12 在線教育,比如技術(shù)開發(fā)類教學(xué),該場景對實時音視頻的要求主要有:
很多非 K12 教學(xué)發(fā)生在單向直播場景下,所以延時要求并不高。 另一類是 K12 在線教育,比如英語外教、部分興趣教學(xué),通常會有一對一或一對多的師生連麥功能,它對直播場景的要求包括:
在 K12 的在線教育中,師生的連麥在低延時方面有較高的要求。如果會涉及跨國的英語教學(xué),或需要面向偏遠地區(qū)學(xué)生,那還要考慮海外節(jié)點部署、中小運營商網(wǎng)絡(luò)的支持等。 在線抓娃娃在線抓娃娃是近期新興熱點,主要依靠實時音視頻與線下娃娃機來實現(xiàn)。它對實時音視頻的要求包括:
瓶頸與權(quán)衡產(chǎn)品的開發(fā)追求極致,需要讓延時低到極限。但理想豐滿,現(xiàn)實骨感。我們曾在上文提到,延時是因多個階段的數(shù)據(jù)處理、傳輸而產(chǎn)生的。那么就肯定有它觸及天花板的時候。 我們大膽假設(shè),要從北京機場傳輸一路音視頻留到上海虹橋機場。我們突破一切物理環(huán)境、財力、人力限制,在兩地之間搭設(shè)了一條筆直的光纖,且保證真空傳輸(實際上根本不可能)。兩地之間距離約為 1061 km。通過計算可知,傳輸需要約 35ms。數(shù)據(jù)在采集設(shè)備與播放設(shè)備端需要的采集、編解碼處理與播放緩沖延時計為較高的值,30ms。那么端到端的延時大概需要 65ms。請注意,我們在這里還忽略了音視頻文件本身、系統(tǒng)、光的衰減等因素帶來的影響。 所以,所謂“超低延時”也會遇到瓶頸。在任何實驗環(huán)境下都可以達到很低的延時,但是到實際環(huán)境中,要考慮邊緣節(jié)點的部署、主干網(wǎng)絡(luò)擁塞、弱網(wǎng)環(huán)境、設(shè)備性能、系統(tǒng)性能等問題,實際延時會更大。在一定的網(wǎng)絡(luò)條件限制下,針對不同場景選擇低延時方案或技術(shù)選型時,就需要圍繞延時、卡頓、音頻質(zhì)量、視頻清晰度等指標進行權(quán)衡與判斷。 作者介紹高澤華,聲網(wǎng) Agora 音頻工匠,先后在中磊電子、士蘭微電子、虹軟科技主導(dǎo)音頻項目。任職 YY 期間負責(zé)語音音頻技術(shù)工作。在音樂、語音編解碼方面有超過十年的研發(fā)經(jīng)驗。 (中國集群通信網(wǎng) | 責(zé)任編輯:李俊勇) |














