
第一版穩定的ORTC(對象RTC)規范已經(jīng)發(fā)布。問(wèn)題是,它會(huì )對WebRTC產(chǎn)生什么樣的影響呢?
讓我們回顧一下,在2013年,Hookflash的首席架構師Robin Raymond就表達了對于在WebRTC中使用SDP(會(huì )話(huà)描述協(xié)議)的不滿(mǎn)。他總結了自己關(guān)于SDP的問(wèn)題,如下:
- 不需要——太多高層次的API
- 晦澀難懂的格式——遺留下來(lái)的,而且有問(wèn)題
- 要求沒(méi)有得到應答
- 不兼容
- 缺少API契約
- 無(wú)法真正解決與遺留系統兼容性的問(wèn)題
在接下來(lái)的幾個(gè)月間,其他成員加入進(jìn)來(lái),成立了W3C對象RTC (ORTC)社區小組,要定義“一系列WebIDL中的ECMAScript API,讓媒體可以從其他瀏覽器或者設備進(jìn)行發(fā)送和接收”。該小組當前擁有60名成員,包括微軟和Google,并且已經(jīng)產(chǎn)出了第一個(gè)穩定的規范草案: 針對WebRTC的對象RTC(ORTC)API。
Doug Mahugh(微軟)認為“ORTC現在已經(jīng)完成了足夠多的內容,可以實(shí)現以獲取經(jīng)驗,從而可以號召更多人來(lái)對其進(jìn)行實(shí)現。” 他概述了一些原因,來(lái)說(shuō)明為什么ORTC有用:
ORTC API很適合“移動(dòng)優(yōu)先,云優(yōu)先”的世界,因為它支持高級視頻特性,像可伸縮的視頻編碼和simulcast。這些高級視頻技術(shù)已經(jīng)被證實(shí)難以在WebRTC 1.0中的SDP中以可互操作的方式支持。相對而言,在JavaScript對象API中利用這些高級視頻技術(shù)會(huì )更簡(jiǎn)單。
此外,ORTC FAQ中的問(wèn)題,也讓大家發(fā)現需要創(chuàng )建新的web通信規范:
通過(guò)JavaScript,ORTC可以更好地訪(fǎng)問(wèn)更多控件。這樣,在web開(kāi)發(fā)者構建實(shí)時(shí)通信應用程序和特性的時(shí)候,就有更多能力和靈活性。比方說(shuō):分層視頻編碼、根據每個(gè)軌道設置編碼格式等等。
并且
ORTC的主要API都是用JavaScript編寫(xiě)的。想要在WebRTC 1.0中修改同樣的控件,可能需要瀏覽源代碼的變化。當我們問(wèn)web開(kāi)發(fā)者更喜歡哪種的時(shí)候,大多數人都說(shuō)更喜歡在應用程序中可以訪(fǎng)問(wèn)更多控件,而不需要等瀏覽器或者其他軟件廠(chǎng)商的更新。
既然微軟和Google都在推動(dòng)ORTC,大家可能會(huì )想,WebRTC會(huì )走向何方? 由于多家瀏覽器廠(chǎng)商——Google、Mozilla、Opera、微軟——都已經(jīng)投入大量資金來(lái)支持WebRTC,所以它不會(huì )被拋棄,而是會(huì )做調整來(lái)支持ORTC。據Google的Justin Uberti所說(shuō),WebRTC 1.1會(huì )集成ORTC。因此,開(kāi)發(fā)者不需要重新編寫(xiě)他們的RTC應用程序,但是還是建議轉而使用ORTC API,因為在瀏覽器中使用它更自然一些。
在GitHub上有大量類(lèi)庫幫助開(kāi)發(fā)者使用ORTC: 針對客戶(hù)端的JavaScript shim library for WebRTC、針對服務(wù)端應用程序的Node.js庫以及針對移動(dòng)設備的C++ wrapper。
據Uberti和Google的Serge Lachappelle所說(shuō),迄今為止已經(jīng)有大概450家公司開(kāi)發(fā)了WebRTC應用,并且有大概17億臺設備支持它(參見(jiàn)視頻@ 43m40s),到2018年,這個(gè)數量預計會(huì )增長(cháng)到40億,因為在所有那些設備中,WebRTC會(huì )被用于視頻聊天,語(yǔ)音通話(huà)、文件共享等等,Google的一個(gè)團隊還演示通過(guò)WebRTC操作帶有3D攝像頭的路虎汽車(chē)。