基于Agora的直播間卡頓優(yōu)化

問題

項(xiàng)目包含實(shí)時(shí)音視頻模塊功能所踊,直接采用的是Agora的教育專版sdk泛粹,具體的業(yè)務(wù)功能包含:1v1私聊沙咏、1vN群聊(備注:Agora最多支持17路的音視頻會(huì)話)食茎,線上經(jīng)常會(huì)收到一些關(guān)于音視頻卡頓的單子丹锹,亟需一輪優(yōu)化稀颁。

分析

通過分析單子,卡頓的問題可以歸為兩類:性能楣黍、網(wǎng)絡(luò)帶寬,關(guān)于性能的問題匾灶,這篇文章不做展開,如有大神路過租漂,請(qǐng)不吝賜教阶女。對(duì)于帶寬的問題,不可能讓所有的用戶直接升級(jí)網(wǎng)絡(luò)套餐哩治,所以問題點(diǎn)就出現(xiàn)怎么在保證通話質(zhì)量的前提下秃踩,減少音視頻對(duì)帶寬的依賴。

優(yōu)化

優(yōu)化可以從以下幾個(gè)維度出發(fā)

  1. 降低直播音視頻質(zhì)量
  2. 網(wǎng)絡(luò)環(huán)境差時(shí)业筏,自動(dòng)切換畫質(zhì)
  3. 降級(jí)服務(wù)

降低直播音視頻質(zhì)量

  1. 默認(rèn)的音視頻配置
//Video
size: AgoraVideoDimension320x240
frameRate: AgoraVideoFrameRateFps15
bitrate: 200

//Audio
audioProfile: AgoraAudioProfileMusicStandard
scenario: AgoraAudioScenarioEducation

碼率與帶寬因素強(qiáng)相關(guān)吞瞪,比如以上這個(gè)配置,需要網(wǎng)絡(luò)的上行帶寬是 200kbps驾孔,但網(wǎng)絡(luò)一般消耗最多的是下行芍秆,下行的話就需要根據(jù)接收的媒體流路數(shù)來計(jì)算了,訂閱遠(yuǎn)端用戶的媒體流的并發(fā)路數(shù)翠勉,這個(gè)只是視頻流的妖啥,還有音頻流,保守還需要50kbps对碌,假如一個(gè)房間里面只有1個(gè)老師一個(gè)學(xué)生荆虱,可以理解音視頻上行加起來最保守需要250kbps

  1. 降低碼率

選取以下三種碼率,進(jìn)行實(shí)際應(yīng)用對(duì)比效果

 - AgoraVideoDimension160x120
 - AgoraVideoDimension240x180
 - AgoraVideoDimension320x240

結(jié)論:AgoraVideoDimension240x180的畫質(zhì)體驗(yàn)感與AgoraVideoDimension320x240相差無幾,最終選定采用AgoraVideoDimension240x180

3.理論優(yōu)化值

假設(shè)房間1v1教學(xué)

碼率 視頻上行帶寬 視頻上行帶寬 總帶寬(上下行)
AgoraVideoDimension320x240 200 50 250*2 = 500
AgoraVideoDimension240x180 120 50 170*2 = 340

帶寬占用降低:160/500 = 32%

網(wǎng)絡(luò)環(huán)境差時(shí)怀读,自動(dòng)切換畫質(zhì)

想法很好诉位,but與Agora溝通之后,被告知目前使用教育專版不支持自動(dòng)切換菜枷,但是又另一種方案叫“雙流模式”苍糠。Aogra文檔

大概的意思是:直播間實(shí)時(shí)音視頻互動(dòng)過程中,一個(gè)用戶只需要推一路流啤誊,也就是初始化sdk配置的碼率岳瞭,可以稱為“大流”。如果開啟了雙流模式蚊锹,這個(gè)用戶除了會(huì)推“大流”瞳筏,還會(huì)自動(dòng)額外發(fā)送一路低分辨率、低碼率的視頻流牡昆,稱為“小流” 姚炕。

特點(diǎn)

  • 大流:分辨率更大、碼率更高
  • 小流:模糊丢烘、尺寸更小

如果給學(xué)生開啟了雙流模式钻心,會(huì)額外增加學(xué)生的上行帶寬的占用,而且學(xué)生的網(wǎng)絡(luò)環(huán)境會(huì)更加的復(fù)雜铅协,雙流會(huì)帶來更大的消耗,所以學(xué)生不能開摊沉,老師一般都是在公司指定的網(wǎng)絡(luò)環(huán)境中上課狐史,網(wǎng)絡(luò)相對(duì)更加有報(bào)障,因此需要教師端開啟雙流模式说墨。

AgoraVideoDimension240x180碼率下的大小流對(duì)照表

流狀態(tài) 配置 視頻上行帶寬(kbps) 音頻上行帶寬(kbps) 總帶寬(kbps)
大流 240*180 15 120 120 50 340
小流 120*160 5 45 45 50 190

帶寬占用降低: 150/340 = 44%

降級(jí)服務(wù)

提到降級(jí)服務(wù)骏全,首先想到的就是后端服務(wù)降級(jí),當(dāng)服務(wù)器壓力劇增的情況下,根據(jù)當(dāng)前業(yè)務(wù)情況及流量對(duì)一些服務(wù)和頁(yè)面有策略的降級(jí),以此釋放服務(wù)器資源以保證核心任務(wù)的正常運(yùn)行。

這里講的降級(jí)指的是音視頻回退機(jī)制尼斧,詳細(xì)細(xì)節(jié)解釋參見Agora

這個(gè)方案其實(shí)在教育客戶場(chǎng)景中不太推薦使用姜贡,需要做好完善的UI交互,否則有可能回退會(huì)導(dǎo)致用戶端上報(bào)很多工單棺棵,用戶端會(huì)誤認(rèn)為是故障楼咳。

同時(shí)如果需要使用的話,一般只建議在接收端做處理烛恤,老師端作為發(fā)送端的網(wǎng)絡(luò)一般是有保障的母怜,并且需要在觸發(fā)回退后可以有UI提示給到用戶端去識(shí)別。

補(bǔ)充

Agora SDK內(nèi)部有一套非常復(fù)雜的算法缚柏,會(huì)基于單位時(shí)間內(nèi)的上行苹熏、下行的網(wǎng)絡(luò)數(shù)據(jù),設(shè)備的CPU數(shù)據(jù),結(jié)合配置的videoprofile數(shù)據(jù)計(jì)算后確認(rèn)大小流切換以及音視頻流回退轨域,且沒有提供一個(gè)明確的標(biāo)準(zhǔn)袱耽,因此在測(cè)試的時(shí)候,會(huì)帶來一些難度干发。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末朱巨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铐然,更是在濱河造成了極大的恐慌蔬崩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀暑,死亡現(xiàn)場(chǎng)離奇詭異沥阳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)自点,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門桐罕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桂敛,你說我怎么就攤上這事功炮。” “怎么了术唬?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵薪伏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我粗仓,道長(zhǎng)嫁怀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任借浊,我火速辦了婚禮塘淑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚂斤。我一直安慰自己存捺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布曙蒸。 她就那樣靜靜地躺著捌治,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纽窟。 梳的紋絲不亂的頭發(fā)上具滴,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音师倔,去河邊找鬼构韵。 笑死周蹭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疲恢。 我是一名探鬼主播凶朗,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼显拳!你這毒婦竟也來了棚愤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤杂数,失蹤者是張志新(化名)和其女友劉穎宛畦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揍移,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡次和,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了那伐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踏施。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罕邀,靈堂內(nèi)的尸體忽然破棺而出畅形,到底是詐尸還是另有隱情,我是刑警寧澤诉探,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布日熬,位于F島的核電站,受9級(jí)特大地震影響肾胯,放射性物質(zhì)發(fā)生泄漏竖席。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一阳液、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧揣炕,春花似錦帘皿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丁恭,卻和暖如春曹动,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牲览。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工墓陈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓贡必,卻偏偏與公主長(zhǎng)得像兔港,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仔拟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1衫樊、前言 無論對(duì)于音頻編碼還是視頻編碼而言,對(duì)于編解碼來說利花,都有不同的應(yīng)用場(chǎng)景科侈。 比較大的應(yīng)用場(chǎng)景有兩個(gè)范圍: 第...
    魚雨丶閱讀 571評(píng)論 0 0
  • 2016年陌陌羡洛、映客等直播平臺(tái)陸續(xù)上線連麥挂脑,如今連麥已經(jīng)成為主流直播平臺(tái)標(biāo)配。聲網(wǎng)于2016年全球率先推出的多人連...
    聲網(wǎng)閱讀 5,647評(píng)論 0 2
  • 表情是什么欲侮,我認(rèn)為表情就是表現(xiàn)出來的情緒崭闲。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了威蕉,難過就哭了刁俭。兩者是相互影響密不可...
    Persistenc_6aea閱讀 124,172評(píng)論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn)韧涨,但是人生放棄了冒險(xiǎn)牍戚,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,033評(píng)論 0 4