1. 程式人生 > >七牛雲徐晶:基於 WebRTC 架構的直播課堂實踐

七牛雲徐晶:基於 WebRTC 架構的直播課堂實踐

機會 讓我 改變 卡頓 別人 rtm 自己的 解釋 elk

8 月 18 日下午,在七牛雲架構師實踐日第三十期,七牛雲教育行業產品研發總監徐晶進行了《基於 WebRTC 架構的直播課堂實踐》為題的實戰分享。
?

本文是對演講內容的實錄整理。?
?
作者簡介:
?
技術分享圖片
?
七牛雲教育行業產品研發總監,擁有 12 年互聯網行業經驗。擅長將傳統行業與互聯網結合,形成具有 Plus 效果的互聯網產品。曾在阿裏巴巴大文娛負責整個優酷直播業務,目前任職七牛雲教育行業產品研發總監,構建互聯網教育雲計算模型,打造在線教育行業的雲計算解決方案,突破傳統教育壁壘。
?

流媒體協議與功能的演進

?
國際電信聯盟做的分析,解釋了流媒體協議的功能和演進。牽扯到教育、直播,說的簡單點就是直播到今天已經不再是觀看,直播在之前最重要的一個功能是讓大家來觀看,但是直播走到今天最重要的功能是互動,形成人與人之間的互動。

?
?技術分享圖片
?
直播的體驗最好在 200 毫秒以內。到 400 毫秒的時候,已經形成一個分界線,觀眾的體驗已經有非常多的人覺得這是一個有問題的視頻,我不想再聽下去了。這也是未來教育行業要走下去的一個根本,也就是要縮短教師和學生之間的距離,減緩兩者之間溝通的障礙。
?
大家有沒有一個體驗?前幾天上海在刮臺風,很多場景下的電視語言說「讓我們來看一看臺風登陸點的記者」,那時候你發現好多記者帶著耳塞,過了兩秒鐘才說話「來,我們看一下身後的背景」,這個體驗非常不好。如果有一天我們的直播技術做到 150 毫秒以內的延時,這樣的場景不再會發生,體驗度會越來越好。只有科技達到 150 毫秒才能慢慢走向教育,走向醫療這樣非常需要互動的場景。
?
所以得出的結論是實時性的需求越來越高,超過 150 毫秒的單向傳輸已經開始影響用戶體驗。這裏面有一個很重要的概念叫做用戶體驗,最典型的例子就是蘋果。大家為什麽那麽喜歡用 iPhone?它的硬件配置並不比安卓好,但是用戶體驗上做得足夠好。之前我問了很多人,為什麽用 iPhone?很多女生說,用 iPhone 就是不卡頓。就是因為不卡頓,iPhone 在用戶體驗上下了非常大的功夫,在整個蘋果的研發中心專門有一支團隊是做用戶體驗的。
?
下面跟大家普及以下幾個概念:
?
首先,IMS?是非常非常早的微軟的一個流媒體協議,這是流媒體的鼻祖。在剛剛開始互聯網流媒體的時候,大家都在用 IMS 協議,通過微軟的Windows 構架去建立的。之後的 RTMP,整個流媒體行業最通用的一種協議,但是它有一個問題,用的是 TCP 的協議,會帶來高延時。
?
接下來是?WebRTC,從去年到今年,越來越多的機構要做實時互動的流媒體機構,於是開始慢慢去走 WebRTC 的路。它是一個非常低延時的協議,能夠讓我跟你的距離甚至在 100 毫秒之內都可以去完成。縱觀整個流媒體的演進,從點播雲到直播雲到最後的實時雲,我們認為在 150 毫秒下,就可以把它叫做實時雲。
?
我們現在用的最多的是 RTMP,基於?TCP。為什麽 TCP 協議本身是安全協議,卻需要做很多工作,導致並不是那麽高效的傳輸:
?
第一,有三次握手。A 點和 B 點聯系需要建立通信握手關系。
?
第二,還會丟包。我這個數據傳到 B 點發現網絡抖動丟包,需要再傳。
?
第三,流量控制。導致整個 TCP 協議不能完全被使用實時雲這樣一個概念。
?
相對來說,UDP?協議非常高效快捷,但是也有很多問題:
?
第一,安全性。大家知道 UDP 是不安全的行為,不會自動重傳,對於視頻流媒體來說是完全不能被接受的,我的畫面傳到 B 點結果由於網絡原因丟包了。
?
第二,UDP 對網絡條件非常苛刻。做過互聯網的朋友都知道,TS 流在網絡環境非常優秀的環境當中才會去使用。既然 TCP 有這樣的問題,UDP 也有很多的問題,怎麽解決實時通信,同時保證質量、成本、延時。很多人包括 Google 的科學家,阿裏巴巴的高級解決方案專家都在研究這個三角關系。
?
UDP 帶來最低延時,但是不能保證質量,TCP 質量最好,但是延時做得最差。這裏面提出一個概念,Reliable UDP,讓 UPD 變成安全靠譜的傳送,場景化的重傳。我從 A 點到 B 點的數據因為網絡抖動可能有一些問題,沒有傳過去,對於 UDP 來說,標準的 UDP 不會去重復。在這個場景下,它會去分析,這個數據對於傳送是不是最重要的。如果發現覺得非常重要的話,可以繼續進行,如果非重要數據,像部分信息鏈丟失不會去重傳,不會導致主要的業務丟失,這叫場景化的重傳策略。
?
第三,帶寬自適應的調整。UDP 對帶寬要求很高,如果增加了帶寬自適應,對於它來說是很靠譜的傳送方式。還有很多的改進空間,人類永遠在不斷更新和叠代算法,更高效地去完善它。今天所討論的基於 WebRTC 的場景就是一個 WebRTC。
?

基於 WebRTC 的直播課堂應用

?
下面介紹的是 WebRTC 在教育領域和教育場景下的一些直播課堂的應用。直播課堂到底是做什麽?WebRTC 怎麽樣建立教師和學生之間的關系?尤其是中國的教育一直被國內外的人吐槽,但是說實話,也蘊藏了很多的機會。
?
中國教育產業整個的市場環境是,2017 年整個教育市場 1800 億元人民幣,但是排名前十的企業加起來總共一年的收入是 41 億。也就意味著教育市場很大,大家都在建立學生和教師之間的關系,利用互聯網把這塊市場打開。
?
要做到教育必須解決低延時的線上環境,用傳統的直播,從老師說到學生聽再到學生說,兩分鐘過去了,感受是特別不好的。直播過程中的互動展示問題,這裏提出一個問題白板,教師和學生之間如果光光是語音語言的溝通還不夠。用語言解釋不清楚的問題,拿在線白板畫一張圖,可能兩分鐘就搞明白了。在教育場景下,白板應對教育過程中的互動展示問題是非常非常重要的。進入教學的過程,很多人希望以後能更多的去消化,慢慢去品位,這個就是記錄教學的過程和方式。
?
尋找線上高效的學習方法。很多孩子學習的時候常常覺得這是我爸媽讓我學的,我不想學。如果這樣的學習狀態放進去,它會變成很不高效。如何讓他們變成一個高效的學習?建立全程監督教學的環境。舉剛才的例子,孩子父母花了很多錢,讓他在線去學習鋼琴,但是忽然發現孩子不願意去學,這個時候如果有一個人去全程陪伴他,跟蹤學習成果,那這也是有助於提升教學質量的一種方式。
?
最後,平臺化的數據積累。復盤很重要,做教育產業其實會有很多的數據積累,對數據的分析、改善,在未來可以更好的幫助你的業務做準備。
?
?技術分享圖片
?
WebRTC 主要的內核,是 Google 構架。當我們在研究教育的時候,要做四件事情:
?
第一,圖傳。很多領域都叫圖傳,後面的攝像機沒有線的情況下有微波的實時圖傳。這裏說的圖傳是老師和學生之間實時網絡信號的傳輸,這裏面包括兩點:第一個低延時,第二個高精度。現在中國在線教育非常火,尤其是在資本市場很火,但是走在最前列的一些公司都已經開始研究高精度這件事情。比如噠噠有一些基礎用戶,現在非常想做一件事情,就是如何提升視頻質量。現在在線教學用的大部分是攝像頭,那個不足以讓別人覺得你 Professional。他覺得這是一個工程的探頭,而並不是有質量有品牌的東西,我是否可以有專門的攝像機,是否有 1080P 標準進來,甚至噠噠都在研究是否有 4K 的標準可以加進來,這種都是高精度的應用。
?
第二,互動。這個互動不是剛才說的人與人之間語音的互動,其實是指白板互動。這裏面有一個很核心的問題,比如 10 個人,都要同一時刻看到某一個白板上的改變,就像在黑板上畫一畫,也許只有在座的人可以看到,但是如何讓北京、紐約等地更多的人看到,並且很多的點同步,這是非常難的事情。關於講義,市場上並沒有很多人做得非常出色,在講白板畫畫的時候,如果我講 PPT,現場 PPT 無法看,這時候解決 PDF、PPT 轉換成白板讓各種用戶可以看到,這就叫做互動。
?
第三,服務。之前我自己創過業,一直在提醒自己一個事情,現在這個社會上做實業掙不了多少錢,開店鋪永遠是在賣東西,什麽東西最能幾何倍掙錢?答案是服務。提供在線平臺給你用,就叫服務;提供淘寶平臺給你用,這就叫服務,它能掙錢。這個服務對於教育來說就是教育的監管能力和課堂分析,怎麽讓一個學生可以學習,怎麽讓家長能夠監管,這些都是我們思考的問題。
?
第四,沈澱。大數據的沈澱。噠噠每天在線上的幾千節課同時並發進行,每天幾千課,沈澱下來的數據有多少?這些數據對未來噠噠改善自己的用戶體驗是否有幫助?這就是數據的魅力。現在有很多公司都在買這些數據,這些數據只有大量的積累才會得到。後續學習的方法經營也一樣。
?
基於 WebRTC 的直播課堂·低延時圖傳
?
· 低延時雙向建立高效連接
?
建立可靠 WebRTC 的方式,它代表低延時,低延時的建立雙向高效連接。為了體驗在線教育,我自己體驗過噠噠、VIPKID,體驗過十幾家,發現有一個問題,都有一個職能叫做學生的顧問,會在直播開始前先打個電話給你,「兄弟,我來幫你弄一下你家的網絡,你到底是用 PAD,還是 PC, 還是用什麽?」搞一搞,半小時過去了。這個是不高效的連接。後面跟大家講如何建立低延時高效的連接,我希望在線教育不會有提前 30 分鐘建立連接這種不科學的事情。
?
· 協議決定了低延時 Level
?
我咨詢過流媒體底層的專家,從他們的角度來看,怎樣的方式是降低延時最可靠的方式。他這樣回答:協議決定一切,決定了大的方向,UDP 到不了毫秒級,WebRTC 最差不會超過多少。其實在協議確定之後,你大的延時基調毫秒還是秒級別已經確定了,再下去優化的環節是物理網絡。
?
· 物理網絡的優化與改進
?
北京到上海,如果花高價買非常好的節點,10 毫秒。如果我是普通的網絡,可能 50 毫秒。有人天天說北京有一個電信通,還有一個叫鵬博士,一直有問題,都是因為它的物理網絡不是特別好。除了剛才的協議之外還要解決物理解決點,它的有效性並沒有像協議來得那麽直接那麽大。
?
· 降低網絡行為時間
?
現在有很多視頻的傳輸前都會做一些行為,比如加密,比如回音消除,我發的聲音有一些嘯叫,降低嘯叫,提升 A 和 B 點的低延時傳輸。
?
基於 WebRTC 的直播課堂·高清晰度流媒體
?
做一個非常專業的教育產業或機構你必須要往高清晰度上去靠。高清晰度跟幾個因素有影響:
?
首先是源頭的采樣。采樣也分成很多 level,今天的攝像機是索尼的 4K,最高能夠采到 4K 的精度。第一,核心分辨率。我采樣的分辨率是 4K 標準還是標清標準,對我的精度是非常重要的一個標準。第二,色位深。這是廣電領域的標準,色位深可以認為它的指標略高,采集的圖像質量略接近於無損。
?
其次是編碼。編碼分成編碼效率,Encode Profile,有些人在 PPT 上轉一個視頻,你會發現為什麽同樣的電腦,我轉出來特別慢,別人轉的時候特別快,那些優酷、土豆視頻網站分分鐘就能轉出來。轉一個碼可能操作裏面的 level 步驟是一樣的,其實這個轉碼裏面的水非常深,即使你轉相同的碼率、相同的分辨率、相同的色位深,所產生的編碼效率,所謂的 Profile 不一樣,帶來的時間和圖像質量完全不一樣。講得簡單點,大家知道 JPG 是一個圖像文件格式,為什麽網上的 JPG 有的幾十 kb,有的拍一張照片 10 kb,是一個壓縮。
?
然後是編碼方式,HL4 也是個編碼方式,視頻使用的是 AV 幾這樣的編碼,音頻可能是 AAC 的編碼方式。不同的編碼方式,在相同的圖像質量情況下,所帶來的帶寬節約度是不一樣的。為什麽大家最近非常熱衷於 H265 和 AG1 這兩種編碼方式,所產生的文件大小和碼率比 HL4 低 40% 到 50%,對於企業來說就是成本,這種叫做編碼方式,對於整個圖像的高精質量也非常重要。
?
碼率也要結合分辨率、色位深來定。網上很多傳 1080P 視頻,碼率只有 3 兆,根本沒有 720P 的清晰,雖然精度很高,但是所花費的成本很低,帶來的是圖像質量一塌糊塗。這就是明明分辨率很高,畫面卻不清晰的原因。3Mbps 的 1080P 和1.8Mbps 的 720P 哪個畫面更清晰?答案是 720P。大家去 Adobe 官網看過官方推薦的,對不同的分辨率有一個建議值,這個建議值 720P 推薦的碼率 1.8M,1080P 推薦的是5.5M。1.8 雖然碼率低,但是分辨率也低,只有 720P,所帶來的圖像質量其實把 720P 放大到 1080P 的屏幕上明顯優於 3M 的碼率,這也是在線教育會用低碼率,但是相對來說比較低清的解決方案來解決畫面清晰度的問題。
?
GOP,是切片最重要的值。GOP 代表的是兩個關鍵軸之間真正通過算法去優化的空間到底有多少。現在很多硬件廠商在編解碼的時候,在 GOP 上可以編為可操作,讓你可以自由定義 GOP 值,來優化畫面質量。
?
Encode Profile,不同的視頻文件轉碼效率到底有多高,不同的 Profile 質量差異有哪些。CBR 和 VBR 的區別是:CBR 是固定碼率,VBR 是動態碼率,我可以根據圖像的畫面來動態調整我的碼率空間,達到讓圖像更優的標準。我今天站在這裏,如果攝像機對著我,我說話整個畫面是不動的,這時候碼率非常小,當我直播一個運動的場景,一個人在跑步的時候,畫面永遠在動,實時變成高碼率的方法,這叫 VBR。
?
那麽哪些場景用 CBR,哪些場景用 VBR 呢?
CBR 適合網絡帶寬是固定的,我可能家裏只有 2 兆,我設定 1.8,但是 VBR 非常不適合,突然間變成 2.2,超過我家裏的 2 兆帶寬,一下子讓我的視頻有點卡頓,網絡條件允許的情況下,VBR 消耗的帶寬遠遠低於 CBR,對於整個碼率圖像質量實時分析。
?
基於 WebRTC 的直播課堂·教育白板
?
我們在做的白板,是直接在線化的。教室和學生或者更多人 1 對 4、1 對 6、1 對 8,這塊動態白板,可以在上面用不同的筆進行畫畫,用不同顏色做標註,同時下面還有基礎圖形,可以對一些我想講的重點圈出來。還有 PPT、PDF,這兩個非常受到歡迎。當我有一些 PPT,有一些 PDF 需要分享的時候,我可以讓它變成白板的一部分,讓大家去做宣講,讓整個教學變得更加高效。我一直認為在教育這個場景下,白板起到的作用要遠遠高於視頻起到的作用。視頻起到的作用是,讓我看到老師,看到他的形象大概是什麽樣,有一個面對面的感覺。但是白板是教育真正的核心,這是為什麽每個學校裏面黑板是必須的一樣,白板相對教育這個場景下非常重要。
?
服務,合流服務。現在很多的空間,很多的互聯網機構非常在意的三種模式:
第一,Mesh 模式。
第二,MCU 模式,所有傳到中央服務器的模式。
第三,SFU 模式,中國絕大部分在線教育機構都在用的模式。它們所使用的帶寬上下結構和靈活性。
?
服務端合流的作用:?
第一,讓家長可以看到我孩子在上課,老師怎麽樣,學生怎麽樣,他們是否有非常大的匹配性。
第二,讓我的在線教育平臺,我的教務人員去評估教學質量。
第三,讓更多山區的孩子看直播,原來上海復旦大學老師的人講課,我聽不到,在山區可以通過這樣的方式去關註。
第四,可以進行錄制,錄制成本大大降低。
第五,分析數據來源。
?

智能 AI 在教育場景下的應用

?
· AI 有效輔助教學
?
曾經噠噠英語跟我聊了一個事情,他們做 K12,線上培訓孩子發現一個問題,有一個孩子跟老師說,我爸讓我來上課,但是我不想上。這個錢你拿著,這節課也 OK,我去打遊戲了,你想做什麽都可以。這種場景就發現這就是一個無效的課堂,在攝像頭的兩端根本沒有人。為了杜絕這種情況,AI 的功能就凸顯出來。只要拿一個 AI 識別這兩個探頭的範圍內,如果超過一分鐘沒有人物在那兒的話,立刻報警,報教務平臺,這是個無效的教學,這就是 AI 的輔助作用。
?
· AI 智能大班課簽到及跟蹤
?
這個適合大班課,今天有一百個人來上課,大家到前臺的時候不用簽到,直接人臉識別就可以上課了。另外一個場景,現在的高校學生都要恨死這個技術了,大家上大學的時候有過翹課的經歷。老師在這兒講了 10 分鐘,有學生從後面溜走了,這種情況在大學裏面有很多。現在一個探頭會永遠看著整個教室,教室裏面有一百個學生,如果哪個學生溜出去了會自動報警,你想翹課根本沒戲,這是 AI 的作用。AI 能識別這是張三在翹課。
?
· AI 教學互動率監測
?
老師跟學生在溝通,忽然發現這個學生沒聽,他的眼神是迷茫的。如果 AI 分析看到他的臉,會覺得這家夥到現在沒有做過任何表示,沒有舉過手沒有任何互動,會記下來有問題。
?
· AI 與大數據的打通
?
當發現這個人有問題,會告訴教務,這節課是無效的,給到教務去區分這個人有多少次有效上課,有多少次跟老師的互動,有多少次舉手。
?
· 降低了在線教育重運營的問題
?
比如隨著噠噠的擴大,會發現學生越多,顧問就越多,有一萬個學生就有一萬個顧問,當學生漲到十萬,顧問漲到十萬,成本太高了。這就需要 AI 來解決。通過 AI 的方式,幫你去推動學前的準備工作。
?

在線教育大數據中心

?
?技術分享圖片
?
沈澱數據。每次我們上完課,這些數據包括 AI 數據和傳統數據都會進入教務的大數據中心,這個大數據中心可以方便地去給學生學習興趣做推薦,舉個例子,我發現某個學生在聽課的時候對數學課積極度很高,天天在那兒舉手,語文課天天睡覺。這時候大數據就會立刻發出告警,以後推薦這個人學理科,這是大數據的作用,可以推薦學習興趣。
?
還可以判斷學生態度,看這個學生到底是不是認真。教學質量,老師講的好不好也可以通過大數據學生跟他的互動率反映出來。適時匹配度,學生和老師的互動。實時的數據回吐,有人離開了,提醒老師。
?

七牛雲基於 WebRTC 架構的直播課堂實踐

?
?技術分享圖片
?
七牛雲即將發布的教育解決方案構架當中的 1 對 1 的部分。老師和學生通過不同的 SDK 設備接入進來,他們要做的是通過 WebRTC 高效並且高性能連接,解決高清、低延時、互動、RTC 這樣幾個問題,還有白板連接進來,是師生之間最重要的橋梁。除了這些,把剛才的 AI 部分、人工識別的部分和數據存儲的部分、旁路直播的部分都結合到裏面,是一個完整的教育體系解決方案。這是 1 對 1 的解決方案,還有 1 對多。
?
基於WebRTC架構的直播課堂適用於哪些場景?
??
技術分享圖片?
?
第一,在線 1 對 1;
第二,小班課 1 對 4;
第三,傳統教育信息化轉型,高校也要在線化轉型;
第四,雙師教育,在 K12 領域非常重要;
第五,企業內部培訓。
?
?
Q&A
WebRTC 是否帶來直播的 3.0 時代??
?
技術分享圖片
答:這個是肯定的,直播 1.0 就是廣電大家所看的電視機標清,2.0 通過優酷、土豆、愛奇藝讓大家觀看這件事情。從秀場開始有互動,真正的互動其實是人與人之間的互動並非是打賞,直播 3.0 才是互動,WebRTC 一定是互動環節最重要的環節。?
?
Q
WebRTC的音頻質量問題
?
技術分享圖片
答:OPUS 的算法,可以帶來足夠的低延時,所以大家都會用這套理論。?
?
Q
是不是只有教育適合 RTC??
答:其實不是的。現在大家看到,醫療、教育、直播、硬件通信,只要有低延時場景的需求都會有 RTC,教育也會分成很多類,企業教育、傳統教育甚至醫療教育。
?

七牛雲徐晶:基於 WebRTC 架構的直播課堂實踐