在线教育音视频技术探索与应用
隨著實時音視頻通信技術的發展,1對1,1對多直播等在線教育形式不斷的滿足個人定制化的學習需求。掌門1對1音視頻負責人 曾小偉在LiveVideoStack 線上交流分享中介紹了在線教育中音視頻技術的應用現狀、挑戰以及未來的發展。本文由LiveVideoStack整理而成。
文 / 曾小偉
整理 / LiveVideoStack
直播回放?
https://www.baijiayun.com/web/playback/index?classid=18120589731745&token=Y70ES34BeD3hKKZLIMQ5htJW7QTXpNFvF3HfaEnKnKsX8VWf2DfBnRl2q5tNi5GNCqdH1zJ1Si0
大家好,我是來自掌門1對1的曾小偉,本次跟大家分享一下在線教育領域音視頻技術的探索與應用,分享內容主要分為以下四個部分:
1,在線教育場景剖析;
2,在線教育中音視頻技術應用的現狀及難點;
3,在線教育領域音視頻技術的發展;
4,總結;
一,在線教育場景剖析
1.?1v1教學
?
首先為大家介紹的在線教育場景是“1對1”教學,上圖是掌門1對1官網的一幅宣傳圖,它講的是一個1對1教學的場景,就是一個老師和一個學生在一起上課的情景。我們將圖中的場景進行了分析簡化。
?
從簡化過的圖中可以看出,1對1教學時,上課的主角就是學生和老師,在課件區域的右上方會顯示自己的視頻和對方的視頻,而學生和老師關注的重點部分是課件區域。另外同樣包包含一個聊天區域,方便大家進行一些文字的交流;課件區域一般會選擇上傳PPT或PDF格式的課件,但同樣存在一些自定義格式的復雜課件。同樣,在這個區域也能播放一些視頻或者小游戲;視頻區域,主要是為了使得學生和老師之間的互動與交流更好一些。而聊天區域,就是文字溝通的渠道,當聲音斷了或需要需要說一些比較長的字符時,用文字區域表達會更好一些。
在1對1的教學場景中,除了學生和老師之外,還有一些隱藏的參與者。除了客戶端,在這個場景中還需要有三個比較重要的服務端的參與,分別是音視頻的服務器、課件服務器、IM服務器。音視頻服務器就是我們這邊的一個WebRTC的轉化服務器;課件服務器就是向大家提供課件資源以供下載;IM服務器就是提供大家聊天的服務器,類似于騰訊QQ或微信的服務端;服務端錄制會將課程內容進行錄制;此外,還有家長端和監課端。家長端為只讀的模式,它在遠端進行拉流,可以觀看上課內容但不能參與。監課端則是屬于線教育公司的行為,它是在線教育公司的質檢部門觀察所聘請老師的教學質量的手段?;旧?#xff0c;我們可以這樣認為,一個1對1的教學場景中,學生和老師一定會在,家長偶爾會在,監課在的幾率會更少一些。接下來,簡單介紹一下1對1教學的架構,如下圖:
在1對1教學的架構中,客戶端包含比較重要的幾部分:一個是需要音視頻的SDK;一個就是課件的實現,比如怎樣展示一個PPT或PDF,在課件展示的上層還有白板,老師可以在課件上寫字,推導公式或者劃出一些重點,學生可以看見老師書寫的內容;在這里還有一個聊天模塊,是一個聊天的SDK,對接IM的服務端;最后,客戶端還有一些其它部分,包括課堂服務等。在服務端主要是三個服務器:音視頻服務器、課件服務器和IM服務器。當前的1對1教學比較適用于教學內容定制化高、需要全科輔導的年紀稍大的學生。
2.?1vN教學
在線教育中比較常見的另一種場景就是“1對N”教學,這里的N一般特指兩到六個學生。當學生數量超過六個時,一個老師難以管理。那么,為什么低齡的學生不太適用于1對1的教學場景呢?通過一些教育心理學的實驗可以發現,年紀比較小的小朋友更喜歡大家在一起學習,小朋友喜歡搶著舉手回答問題,人多會提高他們的積極性;但是學生超過六個則會變得比較嘈雜,老師也難以管理。和1對1教學比起來,這種教學場景只是學生多一些,在服務端沒有什么變化,但由于學生多一些,去監課的家長也會多一些,因此在同一個房間里面,要支持的視頻的路數會更多一些。
3.?大班課場景
另外,第三個場景就是一個大班課的場景。大班課場景就是有點類似于我們在教室里面上課,是一個老師在講臺上講,幾十個或者更多學生在下面聽課,這種場景類似于網紅直播的方式。大班課場景的講師會一直講課,直到課程末尾的時候才會進行答疑環節,學生則通過連麥來提問。在服務端有一個音視頻服務器,更加偏向于CDN廣播,另外還有一個音視頻連麥服務器,這個連麥服務器跟WebRTC的這套技術就比較類似了,同樣它也有課件服務器和IM服務器。在客戶端,與1對N的客戶端架構類似,但因為不用考量學生跟老師之間的互動情況,因此監課的需求也就沒那么高了。
4.?其它
最后,我們講一下在線教育中的一些其他場景,剛才介紹的都是一些需要用到音視頻技術或者是通過直播技術實現的在線教育的場景。除此之外,還有一些基于點播的教育場景,如MOOC、網易云課堂等;還有和音視頻無關的,如在線搜題解題、閱讀、背單詞等。
二,在線教育中音視頻技術應用的現狀及難點
首先在1對1和1對N的場景中,老師和學生需要相互看到對方,因此音視頻技術一般應用在頭像區域的視頻通信中。這里涉及到的音視頻的特點,核心在于一個字就是“低”。第一,分辨率低。正如你們現在在直播間看我分享一樣,我的頭像分辨率就是非常低的,大家關注的重點在于PPT的內容而并非分享者本人。簡單的說,在1對1教學的時候,只要能保證能看到老師和學生大概長什么樣子就可以了,不要求高分辨率。第二,幀率低。幀率低與場景有關,因為老師在講課時不會有那種劇烈的動作,所以幀率低一些也可以。另外,我們知道一個事實,當分辨率越高的時候,需要更高的幀率才能讓視頻沒有卡頓感,而在線教育基本上是240P的分辨率,幀率為15幀每秒就足夠了。第三,碼率低,在分辨率和幀率都低的情況下,我們編碼出來的視頻碼率就很低,加上場景中對視頻質量的要求也并不是特別高,在編碼時,通過設定一些質量參數,可以進一步地把碼率壓縮得更低。第四,延遲低,學生跟老師之間的溝通延遲最好在300毫秒以內,大家交流才比較好。當大家用微信語音或微信視頻去跟朋友聊天時,如果說你們兩個中有一個人的網不好,就會延時很高,變得卡頓起來,導致體驗很糟糕,所以這里也是同樣的,我們希望延遲能夠盡量的低,老師說完一句話,學生馬上就能夠得到反饋。
除了剛才說的四個低之外,在1對1、1對N的場景中,還有如下特點:首先,音頻傳輸優先,一般來說,在上課時,老師的畫面卡幾幀或者卡幾秒都不是問題,但是聲音不能斷。其次,因為現在是移動互聯網的時代,用作客戶端的設備種類繁多,它們所帶的攝像頭、麥克風等硬件質量參差不齊,對這些設備進行媒體采集后,視頻做起來就非常的麻煩。需要對音頻進行回音消除及降噪處理。最后,我們常用的一些音視頻編碼格式在當前場景中不一定是適合的,比如說,現在WebRTC里面音頻格式是Opus,視頻格式是VP8,當然也支持H.264,但是最好是沒有雙向預測幀的,否則會導致延遲進一步增大??偨Y一下,以上這些就是在線教育中音視頻的基本特點,而其中最重要的關鍵點就是低延時。
為了實現低延遲,目前市面上使用最多的直播技術有RMTP、HLS、Dash等,但在這種1對1、1對N的教學下,基本上是無法使用的,隨隨便便延遲就會達到3~5秒。目前基本上采用的都是基于UDP/RTP的直播技術,而做得相對比較成熟的就是WebRTC了。現在各大在線教育以及一些音視頻通道服務供應商的自研方案,基本上都是基于WebRTC開源方案或者參考了WebRTC的方案提出來的。我們常見的WebRTC連接方案有三種,第一種是Mesh,就是所有的客戶端都是P2P的;第二個種是MCU,大家都把流發到一個中間的MCU上,進行混流之后,分發到每個客戶端。其好處就是每個人的帶寬低,缺陷是延遲會稍高一些;第三種是SFU,也是最常用的,就是每個人都把自己的流都推上去,服務端只做轉發,人越多的時候,流的數目就越多。
在線教育領域中,我們為什么選擇SFU架構呢?原因有兩點:第一,相對于Mesh結構來說,SFU提供的是一個優選過后的由供應商保障的轉發線路,穩定性更高,延遲或者丟包率會更低。第二,如果選用MCU,服務端的轉碼會帶來一定的延遲。在線教育場景中每一路視頻的碼率一般來說是200~300kbps,當同時存在2~3路,對于現在的寬帶和4G來說,問題也不大,而且我們也會考慮編解碼的消耗,當分辨率很低時,編解碼的CPU內存消耗也是不大的。在這里我們還需要注意兩點:第一,就是1對1和1對N的場景在SFU轉發時的碼率控制策略是不一樣的。舉例說明,當只有一個老師和一個學生的時候,SFU轉發的時候,當學生發現老師出現卡頓情況之后會告知老師端發慢一點,老師就會把自己的碼率降低一些。而當1對N的時候,可能眾多學生中的一個告訴老師出現卡頓后,老師將自己的碼率調低了,則有可能導致同一房間內剩余的學生看到質量比較差的碼流。所以1對N的時候,SFU轉發策略會進行不同的處理,如果只有一個學生卡頓,可能會忽略,或者碼率降的程度會縮小一些;第二,在直播的時候,我們其實可以把課件通過直接抓屏或者抓取一個窗口得方式,通過音視頻通道放出去。那么為什么我們一般不采用這種方式,而是直接選用課件服務和白板的信令同步策略呢?因為如果用音視頻通道的話,可能需要與頭像區域的音視頻之間做一個同步,另外,白板的分辨率要達到720P,一般需要1Mbps左右的碼率,當碼率升高時,卡頓的風險以及編碼和網絡消耗都增加了。
接下來,介紹一下大班課場景下的特點,大班課非常類似于網紅直播,技術架構也非常像,直接采用穩定的TCP模式做直播,然后就是用CDN,成本比用UDP傳輸的WebRTC自建要低很多。另外,也有一些企業采用的是SFU架構的WebRTC方案,其目的可能是出于資源的復用。除此之外,大班課的課件可以選擇通過視頻傳輸,這時候帶寬消耗會大一些,但是它的客戶端兼容性會好一些。
三,在線教育領域音視頻技術的發展
目前音視頻領域中,各種AI/AR技術也逐漸的在發展和落地,在有些方面已經成熟或有一定精湛,比如說現在比較常見的人臉檢測、背景分割、手勢識別、情緒識別、視線估計、美顏、動態貼紙、超分技術和語音檢測等。
下面會大概介紹一下基于上述一些技術的應用場景:第一,登錄檢測,就是采用人臉識別檢測技術。第二,課堂背景更換,就是基于背景分割,舉例說明,因為在線教育的有些老師是在校大學生,上課的地方也許是在自己的宿舍里,環境復雜。如果說可以把背景分割出來,更換統一的幕布,可減少一些對學生的環境干擾。第三,教學質量檢測,通過視頻里面的學生的情緒檢測、視線識別,語音檢測,來評估課堂的教學質量。舉例說明,老師和學生上課的時候,學生的視線長期盯著屏幕看,就證明他可能是發呆了;在上課過程中我們識別出學生的情緒是疑惑,那么有可能是老師講的點他沒有理解,如果我們把結果實時反饋給老師,老師就可以再把這個問題再講一遍,進而提升課程質量;還有語音檢測,即通過學生和老師的一些交流情況來判斷課程的質量。第四,課堂趣味互動,基于手勢檢測和動態貼圖以及人臉檢測技術。舉例說明,快到圣誕節了,對于一些年紀比較小的學生上課的時候,如果他的問題答的好,老師對他比一個大拇指,通過手勢檢測,在學生的客戶端上顯示一個貼圖,提升學生的學習興趣。第五,超分辨率重建,正如前面所講,以200~300kbps的碼率傳輸240P的視頻給對方,但是有時候老師或者學生希望對方的視頻能夠看的更清楚一些,這時候我們可以重新發送請求,讓對方重新連接一下,發送一個更清楚的視頻。但如果說我們能夠在本地,通過超分辨重建技術,將視頻做的更清晰的話,就可以帶來更好的體驗,而且傳輸的帶寬會比較低,不過會犧牲一些計算資源,通過計算資源換取帶寬。
四,總結
總結一下,當前在線教育領域的音視頻技術的應用和傳統的點播、直播技術有共同點也有區別,主流的音視頻領域都在追求超高分辨率和較高的幀率,但是在線教育行業只是在傳輸延遲方面的要求是最苛刻的。隨著5G網絡和一些高性能硬件的普及,在線教育領域音視頻的分辨率、碼率也會隨之提升,延遲也會進一步降低,但上升的速度肯定是比不上傳統音視頻領域的。另外,低分辨率還會帶來一些麻煩,舉例說明,在視頻AI技術里面一般都會用神經網絡去訓練一些模型。在訓練模型時,大部分算法工程師的處理都是基于分辨率比較高的部分做的,這種比較低的分辨率在訓練的時候會比較麻煩。而且除了在線教育之外,其它一些比較常見的場景,基本上分辨率會越來越高。因此,能夠在在線教育的低分辨率上面應用視頻AI技術也是一個挑戰,但是在線教育依然是一個非?;鸨念I域,并且是在不斷向前發展的。
精品文章推薦
技術干貨:
跨國實時網絡調度系統設計
CEV模型與質量甜點算法設計
基于FFmpeg的運動視頻分析
基于HLS格式的低延時互動直播技術
編碼壓縮新思路:面向QoE的感知視頻編碼
精致前處理,精準碼控 — 極致視覺效果
利用JPEG制作更快,更準確的神經網絡
基于QoE的實時視頻編碼優化:低功耗,低延時,高質量
總結
以上是生活随笔為你收集整理的在线教育音视频技术探索与应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LiveVideoStack线上交流分享
- 下一篇: CoNEXT 2018:在Faceboo