您當前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

WebRTC:并非解決音視頻應(yīng)用所有問題的銀彈

2018-02-24 09:47:08   作者:   來源:CTI論壇   評論:0  點擊:


  WebRTC 1.0標準雖然已經(jīng)定稿,但各個瀏覽器的實現(xiàn)都還不成熟,處于快速迭代中,網(wǎng)易云信CTO趙加雨針對實時通信技術(shù)演進、WebRTC國內(nèi)外發(fā)展與趨勢、以及開發(fā)難點和不足做了詳細分析。本文是『WebRTC-互聯(lián)網(wǎng)音視頻新標準?』系列的第四篇,如果您對WebRTC技術(shù)的未來有分析和洞見,歡迎聯(lián)系 contribute@livevideostack.com。
  策劃 / LiveVideoStack關(guān)于分享嘉賓:趙加雨,網(wǎng)易云信CTO,曾深度參與 Cisco Jabber、Webex Meeting、網(wǎng)易視頻云等多項分布式實時通信類產(chǎn)品的架構(gòu)與研發(fā),具備多年海外工作經(jīng)驗及大型研發(fā)團隊管理經(jīng)驗,擅長構(gòu)建高并發(fā)的實時通訊類的互聯(lián)網(wǎng)產(chǎn)品。
  LiveVideoStack:您參與開發(fā)了WebEx Meeting,Cisco Spark到現(xiàn)在的WebRTC,開發(fā)音視頻應(yīng)用的難度與流程有了哪些變化?挑戰(zhàn)在哪里?
  Rain: WebEx是十幾年前的產(chǎn)品,那個時候的帶寬還很低,做音視頻的人才也很少,研發(fā)的難度還是很大的,為了實現(xiàn)低帶寬場景下的桌面共享和音視頻通話,WebEx也是做了很多黑科技的。發(fā)展到今天帶寬已經(jīng)不是問題,但是人們對于音視頻的期望和要求也變高了,加上各種弱網(wǎng)和跨網(wǎng)的問題,音視頻研發(fā)的難度仍然很高,而WebRTC的開源在一定程度上降低了音視頻研發(fā)的門檻,實現(xiàn)一個簡單的音視頻應(yīng)用變得相對容易了,但是要想實現(xiàn)一個高質(zhì)量的音視頻應(yīng)用,難度仍然很大。
  LiveVideoStack:從小團隊到大團隊,直到擔任CTO,每個階段面臨的最大挑戰(zhàn)是什么?如何找到不斷前行的動力?
  Rain:從普通工程師一路走來,個人能力在不斷提高,相應(yīng)的承擔的膽子也越來越大,從自己做到帶團隊做,到現(xiàn)在作為CTO,每個階段有每個階段的挑戰(zhàn)。作為CTO,需要對整個團隊的技術(shù)架構(gòu)和技術(shù)方向負責(zé),對技術(shù)團隊的成長和團隊建設(shè)負責(zé),也要有一定的業(yè)務(wù)意識,和其他團隊一起對業(yè)務(wù)負責(zé)。個人能保持不斷成長,我的心得是要保持好奇心,對于新技術(shù)要保持不斷學(xué)習(xí),另外要不斷走出舒適區(qū),每一次走出舒適區(qū)都是成長最大的時候。第三是盡量和牛人一起工作,在類似網(wǎng)易這樣的公司,和頂級的團隊和頂級的人才一起工作成長會非常大。
  LiveVideoStack:對于有興趣(或轉(zhuǎn)行)學(xué)習(xí)音視頻開發(fā)的初學(xué)者,您有什么建議?有沒有推薦學(xué)習(xí)的圖書資料?從哪些技術(shù)棧開始入手?
  Rain:音視頻技術(shù)棧比較長,有側(cè)重算法的,也有側(cè)重工程的,有編解碼相關(guān)的,也有網(wǎng)絡(luò)和傳輸相關(guān)的,有服務(wù)端開發(fā),有算法層開發(fā),也有各種端適配,有基于UDP的實時音技術(shù),也有基于TCP的直播技術(shù),一個人很難覆蓋所有的技術(shù)點。個人建議是結(jié)合自己的技術(shù)背景和興趣,選擇某一個點開始,然后逐漸深入。當選擇一個方向后,可以看相關(guān)的資料,音視頻的技術(shù)書籍比較少,但是有大量的RFC文檔,因此需要一定的英文閱讀能力。當然,最好的入門方式是加入類似網(wǎng)易云信這樣的專業(yè)音視頻團隊,跟著項目和同事學(xué)習(xí),同時大量閱讀RFC文檔。
  關(guān)于WebRTCLiveVideoStack:去年蘋果宣布在iOS 11中支持WebRTC,至此完成了主流PC瀏覽器和移動端的全覆蓋,您認為它會成為今年的技術(shù)熱點和趨勢嗎?
  Rain:我相信會的,WebRTC從發(fā)布至今一直是技術(shù)的熱點,Safari 11開始支持WebRTC后,這表示所有主流OS上的default browser都支持WebRTC了,這會進一步推動WebRTC的應(yīng)用。WebRTC是P2P的,沒有考慮服務(wù)端,也沒有考慮與其他系統(tǒng)的集成,有些公司會基于WebRTC技術(shù)來構(gòu)建音視頻應(yīng)用,另外由于WebRTC的普及,各音視頻應(yīng)用也會考慮支持WebRTC,將瀏覽器作為音視頻應(yīng)用的入口。
  LiveVideoStack:WebRTC在國外的發(fā)展是如何一步一步走到現(xiàn)在的?您對國內(nèi)目前的應(yīng)用現(xiàn)狀如何看?
  Rain:自從Google在2011年開源WebRTC后,這一技術(shù)就一直備受關(guān)注,但是由于音視頻技術(shù)的復(fù)雜性和規(guī)范制定的滯后性,前幾年的WebRTC技術(shù)一直處于試用階段,并不穩(wěn)定,最早支持WebRTC技術(shù)的Chrome瀏覽器和Firefox瀏覽器,Chrome在功能上相對穩(wěn)定一點,但在遵循規(guī)范上做的不夠好,F(xiàn)irefox在遵循規(guī)范上做的更好,但是功能上不夠成熟。過去幾年的WebRTC技術(shù)實現(xiàn)和規(guī)范制定都在快速迭代中,因此并沒有成熟的商業(yè)化產(chǎn)品出現(xiàn),直到最近2年,出現(xiàn)了越來越多的WebRTC應(yīng)用,也有更多音視頻應(yīng)用支持WebRTC,相信WebRTC在教育、遠程醫(yī)療等場景下會有較為廣泛的應(yīng)用。
  LiveVideoStack:國外使用WebRTC的項目或者創(chuàng)業(yè)公司的情況如何?有什么是我們可以去借鑒和學(xué)習(xí)的地方。
  Rain:隨著支持WebRTC的瀏覽器越來越多,國外出現(xiàn)了不少創(chuàng)業(yè)公司,完全基于WebRTC技術(shù)來實現(xiàn)音視頻通話,沒有SFU/MCU,可以實現(xiàn)雙人通話,也可以通過mesh的方式實現(xiàn)3-4人的多方通話,由于沒有流媒體服務(wù)端,也沒有流量成本,因此可以以比較低的價格來提供相對簡單的音視頻服務(wù),另外也有一些創(chuàng)業(yè)公司并不是構(gòu)建音視頻應(yīng)用,而是利用WebRTC技術(shù)并結(jié)合來其他一些技術(shù)來構(gòu)建有意思的應(yīng)用,譬如結(jié)合Web Audio API, File API, MSE,Canvas/WebGL等技術(shù),還有一些公司利用DataChannel來實現(xiàn)完全基于web的P2P分發(fā)網(wǎng)絡(luò),WebRTC和其他的一些HTML5技術(shù)一起賦予了browser更多的能力,這里可以挖掘出不少玩法。
  LiveVideoStack:去年的W3C技術(shù)大會提出通過QUIC來實現(xiàn)WebRTC,對此您如何看待?
  Rain:QUIC是Google提出的傳輸層協(xié)議,是一種可靠UDP協(xié)議,用于解決TCP協(xié)議的隊首阻塞、建立連接慢、帶寬利用不足、時延大等問題,隨著QUIC協(xié)議的成熟,應(yīng)該會被利用到更多地方,包括WebRTC的DataChannel。
  LiveVideoStack:WebRTC對主流視頻編解碼的支持還并不是很好,尤其是對于H.265的支持,您如何看待這個問題?他未來會去做支持嗎?包括AV1等等。
  Rain:WebRTC目前支持VP8/VP9/H264,支持H265并沒有太多技術(shù)上的問題,目前主要的問題還是license,而這個問題短期內(nèi)還看不到解決的可能,因此H265在WebRTC里的支持還不太樂觀。AV1是AOM聯(lián)盟推出的視頻編碼標準,AOM聯(lián)盟的目標是在視頻領(lǐng)域復(fù)制OPUS在音頻編碼領(lǐng)域的成功,實現(xiàn)一個能適應(yīng)多種場景(高時延和低時延,軟編和硬編,視頻與錄屏等等)的視頻編碼器,AOM獲得了非常多公司的支持,AV1編碼器的進展也比較快,隨著AV1的成熟,WebRTC應(yīng)該會比較快的支持AV1。
  LiveVideoStack:在應(yīng)用WebRTC開發(fā)過程中,您認為或者遇到的難點有哪些以及解決方案式怎樣的?
  Rain:WebRTC標準剛剛定稿,各個瀏覽器的實現(xiàn)都還不成熟,也處于快速迭代中,因此基于WebRTC的研發(fā)一方面要兼容各個瀏覽器的區(qū)別,也需要快速跟上瀏覽器的迭代速度,另外WebRTC并沒有定義信令怎么做,也沒有服務(wù)端的方案,也沒有錄制、轉(zhuǎn)碼等,要實現(xiàn)一個完整的音視頻應(yīng)用還需要做非常多的工作。如果是基于libwebrtc來構(gòu)建音視頻應(yīng)用,需要非常資深的團隊花比較多的時間才能吃透libwebrtc的代碼,而這些代碼也在快速迭代中,你可能也需要將這些基于P2P場景的策略算法修改成適合多人會話場景。
  LiveVideoStack:您認為哪些行業(yè)會成為WebRTC的突破點和最佳實踐應(yīng)用?
  Rain:WebRTC實現(xiàn)了在web端的低時延音視頻通話的能力,因此需要web端低時延音視頻的場景都可以利用webrtc技術(shù)來實現(xiàn),譬如在線教育和遠程醫(yī)療。不過這里也要提醒一下,WebRTC并不是解決音視頻應(yīng)用所有問題的銀彈,它僅僅解決了音視頻應(yīng)用的一部分問題,提供了一個音頻處理框架、網(wǎng)絡(luò)擁塞控制框架,P2P打洞與網(wǎng)絡(luò)連接框架,音視頻引擎等,所有的策略算法都是為了P2P場景下的語音通話來實現(xiàn)的,你的產(chǎn)品可能并不是這樣的場景,那么就不能使用WebRTC,或者要做深度修改。譬如網(wǎng)易云信,作為PaaS平臺需要滿足各種場景下的音視頻應(yīng)用,有一類應(yīng)用就是音樂教學(xué),既有音樂又有通話,音樂的聲音是全頻段的,因為有通話,回音消除也是需要的,為了保證音樂教學(xué)場景下的聲音效果,從語音采集到語音3A前處理,再到網(wǎng)絡(luò)擁塞控制策略等等,都需要針對音樂教學(xué)這樣的場景來做特別的策略算法。
  WebRTCon 2018 8折報名WebRTCon希望與行業(yè)專家一同分享、探討當下技術(shù)熱點、行業(yè)最佳應(yīng)用實踐。
【免責(zé)聲明】本文僅代表作者本人觀點,與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內(nèi)容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責(zé)任。

專題