距實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)召開(kāi)還有2天。據(jù)透露,大會(huì)請(qǐng)來(lái)了一位重量嘉賓,有”WebRTC之父之稱”的WebRTC技術(shù)標(biāo)準(zhǔn)作者Daniel C. Burnett。近日,Daniel C. Burnett接受了CSDN的專訪。Daniel在計(jì)算機(jī)標(biāo)準(zhǔn)領(lǐng)域已經(jīng)工作了十年有余,作為Peer Connection和get UserMedia W3C WEBRTC規(guī)范的編輯者,以及國(guó)際互聯(lián)網(wǎng)工程任務(wù)組(IETF)的參與者,Daniel從一開(kāi)始便投身于這個(gè)激動(dòng)人心的新領(lǐng)域中。他所編寫的W3C標(biāo)準(zhǔn)目前廣泛應(yīng)用于大部分自動(dòng)交互式語(yǔ)音應(yīng)答(IVR)系統(tǒng)之中。
WebRTC標(biāo)準(zhǔn)之父Daniel C. Burnett
CSDN:感謝您接受CSDN的專訪,請(qǐng)您介紹一下您的主要職責(zé)以及WebRTC在去年的發(fā)展情況。
Daniel:我是WebRTC標(biāo)準(zhǔn)規(guī)范的第一位編輯,而且最資深的一位編輯,大家都稱我為”WebRTC標(biāo)準(zhǔn)之父”。我還是在任時(shí)間最長(zhǎng)的”媒體捕獲和流媒體規(guī)范”編輯,這是WebRTC以外的另一個(gè)主要標(biāo)準(zhǔn)文檔。我與其他編輯一起,負(fù)責(zé)審核并應(yīng)用GitHub獲取用戶需求,在許多情況下,這用于修復(fù)開(kāi)發(fā)人員提出的規(guī)范文本問(wèn)題。去年,我們的工作重點(diǎn)是添加新的低級(jí)別控制功能。添加這些功能非常簡(jiǎn)單,但若要讓它們穩(wěn)定流暢地運(yùn)行下去并不容易。
CSDN:WebRTC技術(shù)開(kāi)發(fā)人員側(cè)重于處理哪些問(wèn)題?您對(duì)這些問(wèn)題有何看法?
Daniel:我不知道您所指的是使用WebRTC的Web開(kāi)發(fā)人員還是WebRTC標(biāo)準(zhǔn)的開(kāi)發(fā)人員,所以我會(huì)分別解答。使用WebRTC的Web開(kāi)發(fā)人員的重點(diǎn)不是創(chuàng)新,而是側(cè)重于如何在他們的WebRTC應(yīng)用程序中再現(xiàn)傳統(tǒng)固定電話網(wǎng)絡(luò)的可靠性。
一個(gè)簡(jiǎn)單好用的API對(duì)于WebRTC初學(xué)者來(lái)說(shuō),一開(kāi)始很重要,但是一旦他們掌握了如何使用API之后,開(kāi)發(fā)人員將不會(huì)過(guò)多關(guān)注API本身。例如,之前,單個(gè)對(duì)等連接支持多個(gè)音頻頻流的復(fù)用之前,開(kāi)發(fā)人員會(huì)創(chuàng)建多個(gè)對(duì)等連接連接,每個(gè)對(duì)等連接都會(huì)有單個(gè)的音頻軌和視頻軌。
開(kāi)發(fā)人員將面臨的挑戰(zhàn),比如:事先了解能否呼叫成功;盡快啟動(dòng)呼叫;開(kāi)發(fā)者需要了解網(wǎng)絡(luò)的帶寬和延遲的情況,在帶寬不足或者延遲比較大的情況下,開(kāi)發(fā)者在應(yīng)用程序端中需要做出一些干預(yù)(例如關(guān)閉視頻窗口);了解網(wǎng)絡(luò)何時(shí)將完全掉線。這些問(wèn)題都很重要,尤其是對(duì)于那些想要完全取代傳統(tǒng)或者無(wú)限呼叫的應(yīng)用程序而言。
現(xiàn)在,對(duì)于制定WebRTC標(biāo)準(zhǔn)的我們來(lái)說(shuō),問(wèn)題在于如何最有效地解決我剛才提到的挑戰(zhàn)。我們采取的方法是,提供少量的信令和控制,讓開(kāi)發(fā)人員可以通過(guò)自己的分析進(jìn)行調(diào)整。雖然這也許能充分解決問(wèn)題,但也可能讓事情變得更復(fù)雜,原有簡(jiǎn)單API的諸多優(yōu)勢(shì)也將不復(fù)存在。所有標(biāo)準(zhǔn)到最后都會(huì)成為折中方案,但我仍認(rèn)為,我們制定的這一折中方案比先前的互聯(lián)網(wǎng)電話(VoIP)方法更易于使用,也更加可靠。
CSDN:WebRTC技術(shù)在哪些領(lǐng)域最具價(jià)值?在實(shí)際項(xiàng)目中是否遇到了挑戰(zhàn)?您認(rèn)為,這些挑戰(zhàn)是否有更好的解決方案?
Daniel: WebRTC在已具有社區(qū)或基于Web的交互的情形中最具價(jià)值。美國(guó)的知名實(shí)際項(xiàng)目包括:Amazon的Mayday視頻支持服務(wù),在Amazon Kindle Fire上按一下幫助按鈕即可訪問(wèn)這一服務(wù);Facebook的視頻聊天功能,這一功能建立在現(xiàn)有文本聊天功能的基礎(chǔ)之上。在這兩個(gè)案例中,提供商和客戶若要撥打電話或進(jìn)行視頻通話,可以停留在現(xiàn)有應(yīng)用程序中,而不必切換到第三方,這非常實(shí)用。
但為什么WebRTC的使用范圍不太廣泛?我認(rèn)為主要問(wèn)題在于前面所說(shuō)的質(zhì)量預(yù)測(cè)與質(zhì)量保證的挑戰(zhàn)。由于WebRTC本身是基于瀏覽器集成,在傳輸方面并沒(méi)有太多的標(biāo)準(zhǔn)和建議,僅使用傳統(tǒng)的P2P點(diǎn)對(duì)點(diǎn)協(xié)議,當(dāng)用戶出現(xiàn)復(fù)雜的本地環(huán)境(例如手機(jī)信號(hào)不穩(wěn)定)或跨地區(qū)跨時(shí)區(qū)跨國(guó)的傳輸時(shí),WebRTC會(huì)無(wú)法進(jìn)行軟件編碼優(yōu)化,這也就是為什么,開(kāi)發(fā)者使用WebRTC實(shí)現(xiàn)Demo很容易,可是在實(shí)際過(guò)程中卻碰到很多問(wèn)題。同時(shí),由于WebRTC無(wú)法使用硬件編碼,因此受制于移動(dòng)終端設(shè)備的cpu性能限制,在商用過(guò)程中往往難以實(shí)現(xiàn)。
現(xiàn)在有不少無(wú)質(zhì)量保證的免費(fèi)應(yīng)用程序,人們往往會(huì)先嘗試這些應(yīng)用程序,但在首次失敗后仍轉(zhuǎn)而使用PSTN/VoIP,WebRTC的應(yīng)用程序如要在數(shù)量上超過(guò)這些傳統(tǒng)應(yīng)用程序,基于互聯(lián)網(wǎng)的實(shí)時(shí)通信應(yīng)用的質(zhì)量和穩(wěn)定性必須在總體上有所提升。
CSDN:據(jù)說(shuō)WebRTC標(biāo)準(zhǔn)不夠穩(wěn)定,存在一些錯(cuò)誤。您對(duì)此有何看法?對(duì)于在將來(lái)開(kāi)發(fā)WebRTC技術(shù)有何計(jì)劃?
Daniel:任何標(biāo)準(zhǔn)在完成之前都不穩(wěn)定,更何況WebRTC嘗試為之建立標(biāo)準(zhǔn)的功能尚未在任何地方實(shí)施,這是個(gè)巨大的挑戰(zhàn)。這一標(biāo)準(zhǔn)此時(shí)最需要的是瀏覽器能按照規(guī)范進(jìn)行實(shí)施,尤其是Google瀏覽器。這當(dāng)然也適用于WebRTC源生庫(kù)。正是由于WebRTC標(biāo)準(zhǔn)本身的不確定性,以及存在通話質(zhì)量很難保證的問(wèn)題,所以我們需要根據(jù)項(xiàng)目實(shí)際需要來(lái)評(píng)估和選擇正確的解決方案 (WebRTC只是其中一種)。
CSDN:WebRTC技術(shù)能否滿足移動(dòng)互聯(lián)網(wǎng)時(shí)代的需求?WebRTC能否給現(xiàn)在熱門的直播平臺(tái)帶來(lái)啟發(fā)?
Daniel:有大量工作用于確保WebRTC在移動(dòng)實(shí)時(shí)環(huán)境中正常運(yùn)行,F(xiàn)在的首要問(wèn)題是網(wǎng)絡(luò)接口發(fā)生變化時(shí)的穩(wěn)定性,尤其是從WiFi切換到移動(dòng)運(yùn)營(yíng)商網(wǎng)絡(luò)時(shí)。目前來(lái)看,要WebRTC在此環(huán)境下發(fā)揮作用,還需要一些用戶級(jí)別的編程。尤其是面對(duì)復(fù)雜的網(wǎng)絡(luò)環(huán)境的情況下,需要更多的技術(shù)和解決方案來(lái)應(yīng)對(duì)這個(gè)問(wèn)題。WebRTC 1.0之后的下一版本會(huì)討論將更多用戶級(jí)別編程自動(dòng)化。
對(duì)于直播,則有不同的方法。近幾年來(lái),有些公司專注于構(gòu)建點(diǎn)對(duì)點(diǎn)的內(nèi)容分發(fā)網(wǎng)絡(luò),這種網(wǎng)絡(luò)使用群組進(jìn)行單向媒體分發(fā),并完全通過(guò)用戶級(jí)別代碼來(lái)搭建。API新增同時(shí)分發(fā)的功能,這不是廣播,但有助于視頻選擇分發(fā)單元(SFU)的帶寬管理,進(jìn)而改善大規(guī)模分發(fā)。
直播技術(shù)方面,聲網(wǎng)Agora.io的實(shí)時(shí)全互動(dòng)直播主要滿足的超低延遲和互動(dòng)的場(chǎng)景,在全球構(gòu)建了軟件實(shí)時(shí)定義虛擬網(wǎng)(SD-RTN)實(shí)現(xiàn)高質(zhì)量、高清晰度、穩(wěn)定可靠的全交互直播,希望從根本上解決傳輸?shù)膯?wèn)題。
CSDN:WebRTC和RTC之間有何聯(lián)系?它們?cè)谖磥?lái)會(huì)如何發(fā)展?
Daniel: RTC表示實(shí)時(shí)通信,WebRTC只是實(shí)現(xiàn)瀏覽器實(shí)時(shí)通信的一項(xiàng)技術(shù)。其他技術(shù)還包括基于SIP的傳統(tǒng)IP語(yǔ)音,當(dāng)然還包括原有的PSTN,也就是分組交換電話網(wǎng)絡(luò)。如果您問(wèn)的是WebRTC和ORTC(對(duì)象RTC),這的確曾是個(gè)問(wèn)題,因?yàn)镺RTC在最初是作為WebRTC的替代品而構(gòu)建的。不過(guò),在一年多前,這兩家公司決定合作,結(jié)果是所有新的低級(jí)別控制功能結(jié)合到WebRTC之中,我們現(xiàn)正在進(jìn)行整理和充實(shí)。ORTC充當(dāng)一個(gè)“孵化器”,其中的工作隨后會(huì)移交正式的W3C WebRTC工作組以實(shí)施標(biāo)準(zhǔn)化。
csdn:WebRTC支持Chrome、Firefox、Opera等瀏覽器,但不支持Apple的Safari。您對(duì)這種情況有何計(jì)劃?是否在進(jìn)行任何兼容性相關(guān)工作來(lái)解決這一問(wèn)題?
Daniel:一些私有公司創(chuàng)建了庫(kù),許多工作在WebKit中完成,現(xiàn)在,蘋果公司自己明確在實(shí)施WebRTC。此外,Apple的互聯(lián)網(wǎng)媒體負(fù)責(zé)人出席了我們最近在葡萄牙里斯本舉行的多個(gè)標(biāo)準(zhǔn)會(huì)議。在討論中,我們?cè)儐?wèn)了我們計(jì)劃的問(wèn)題解決方法,該負(fù)責(zé)人也幾次予以確認(rèn)。預(yù)計(jì)他們?cè)诿髂瓿鯐?huì)進(jìn)行公開(kāi)。
目前,存在的最大的問(wèn)題就是如何解決兼容性的問(wèn)題,對(duì)于不支持蘋果的Safari,據(jù)我所知目前并沒(méi)有非常清晰詳盡的計(jì)劃。
CSDN:這次的實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)是由聲網(wǎng)Agora.io和美國(guó)的權(quán)威IT機(jī)構(gòu)TMC聯(lián)合舉辦的。作為實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)的引入方,您認(rèn)為聲網(wǎng)Agora.io對(duì)實(shí)時(shí)通信有何貢獻(xiàn)?這對(duì)開(kāi)發(fā)人員和整個(gè)行業(yè)有何影響?
Daniel:聲網(wǎng)Agora.io采取了一種截然不同、極富創(chuàng)新精神的方法來(lái)提供可靠的互聯(lián)網(wǎng)實(shí)時(shí)音視頻通信,他們提供的覆蓋網(wǎng)絡(luò)使通信得到改進(jìn)。因?yàn)楣不ヂ?lián)網(wǎng)本身并不是為實(shí)時(shí)業(yè)務(wù)而設(shè)的,所以為了保證實(shí)時(shí)通信,需要在公共互聯(lián)網(wǎng)的基礎(chǔ)上進(jìn)行些改造,才能解決質(zhì)量方面的根本問(wèn)題。
聲網(wǎng)Agora.io的實(shí)時(shí)通信SDK和API,在全球構(gòu)建了軟件實(shí)時(shí)定義虛擬網(wǎng)(SD-RTN)。 這一網(wǎng)絡(luò)的優(yōu)勢(shì)在于,它僅處理一些簡(jiǎn)單的庫(kù)調(diào)用,應(yīng)用程序開(kāi)發(fā)人員無(wú)需直接確定他們自己的算法來(lái)管理網(wǎng)絡(luò)帶寬和擁塞。他們的方法聽(tīng)起來(lái)簡(jiǎn)單,但后臺(tái)技術(shù)卻非常復(fù)雜。這等于是為開(kāi)發(fā)者解決了最難的技術(shù)和音視頻傳輸?shù)膯?wèn)題,就像取自來(lái)水一樣簡(jiǎn)單,這種方法為這些應(yīng)用程序的日常用戶帶來(lái)了更高質(zhì)量的實(shí)時(shí)通信體驗(yàn)?梢哉f(shuō),聲網(wǎng)Agora.io提供的實(shí)時(shí)通信SDK是對(duì)開(kāi)發(fā)者十分友好的。
據(jù)我所知,無(wú)論是在中國(guó)國(guó)內(nèi)還是在亞洲歐美等其他市場(chǎng),聲網(wǎng)Agora.io提供的實(shí)時(shí)技術(shù)能夠?yàn)楦嗟拇怪毙袠I(yè)和細(xì)分領(lǐng)域所利用,并改變著這些行業(yè)。對(duì)于這些垂直行業(yè)和細(xì)分領(lǐng)域而言,聲網(wǎng)Agora.io出色的音視頻傳輸技術(shù)為這些行業(yè)提供了很好的解決方案,行業(yè)中都有比較廣泛的應(yīng)用,商用的前景更可期待。
CSDN:大會(huì)召開(kāi)在即,中國(guó)的實(shí)時(shí)通信技術(shù)開(kāi)發(fā)人員很期待您的來(lái)訪。您想要對(duì)中國(guó)的實(shí)時(shí)通信技術(shù)開(kāi)發(fā)人員說(shuō)些什么?
Daniel:夢(mèng)想,探索,創(chuàng)新。在開(kāi)始WebRTC標(biāo)準(zhǔn)化時(shí),Google和我們其他人都有一個(gè)愿景,那就是使每個(gè)HTML JavaScript編程人員都能進(jìn)行實(shí)時(shí)通信開(kāi)發(fā),而不是只由少數(shù)SIP開(kāi)發(fā)人員掌控?梢詮腤ebRTC和其他實(shí)時(shí)通信API開(kāi)始,這無(wú)需任何花費(fèi)。我十幾歲的兒子可以在他的空閑時(shí)間免費(fèi)構(gòu)建一個(gè)基本W(wǎng)ebRTC應(yīng)用程序。Web和互聯(lián)網(wǎng)技術(shù)徹底改變了我們的生活,多數(shù)成功來(lái)自于青少年和高校學(xué)生的夢(mèng)想。我確信,實(shí)時(shí)通信的最佳應(yīng)用程序即將出現(xiàn)。
但這就像一個(gè)硬幣的雙面。因?yàn)楸旧鞼ebRTC是一個(gè)開(kāi)源程序,沒(méi)有真正的商業(yè)化的投入的話,這項(xiàng)技術(shù)的潛能可能還沒(méi)有最大化發(fā)揮,從這一點(diǎn)來(lái)講,這也可能對(duì)于開(kāi)發(fā)人員是一個(gè)需要考慮的問(wèn)題。
所以,我們有理由期待有更多的實(shí)時(shí)通信(RTC)技術(shù)和應(yīng)用可以出現(xiàn),期待更多的像聲網(wǎng)Agora.io這樣的RTC技術(shù)的創(chuàng)新。
CSDN:能否透露一下您會(huì)在10月28-29日在北京召開(kāi)的第二屆實(shí)時(shí)互聯(lián)網(wǎng)大會(huì)上帶來(lái)的觀點(diǎn)?
Daniel:當(dāng)然。去年我們側(cè)重于WebRTC的基礎(chǔ),今年我們將回顧這些基礎(chǔ),然后探究在過(guò)去一年中出現(xiàn)的一些變化。具體來(lái)說(shuō),我們將討論我之前提到的低級(jí)別控制功能,并展示已經(jīng)實(shí)施的一些功能。我們還會(huì)留出一段時(shí)間詳細(xì)說(shuō)明調(diào)試以及有助于實(shí)際應(yīng)用程序的內(nèi)容。最后,我們將詳細(xì)討論安全性,并說(shuō)明預(yù)計(jì)將納入WebRTC 1.0實(shí)施之中的其他一些功能,最后展望WebRTC 1.0之后版本的未來(lái)發(fā)展。
我還將參加大會(huì)的一個(gè)重要環(huán)節(jié),coding訓(xùn)練營(yíng),面向參會(huì)的開(kāi)發(fā)者們面授各類coding技巧,到時(shí)候現(xiàn)場(chǎng)見(jiàn)。