Safari瀏覽器也要開始玩網頁視訊了~
改天來下載Safari試試多方視訊
不過來源文章沒提到是從第幾版開始有這功能。
WebRTC和WebKit
WebRTC是基於流覽器的即時通信介面,主要支援通過流覽器進行點對點的音訊以及視頻通信。WebRTC規範由W3C和IETF共同制定。通過這些API,Web開發者可以通過標準的JavaScript API在網頁中嵌入視頻、音訊通信功能。
WebKit是一個開源的流覽器引擎,它由WebCore排版引擎、JSCore JavaScript引擎和各種平臺移植代碼組成。WebKit目前缺乏對WebRTC標準的支援,因此開發者構建了webrtcinwebkit.org網站,開始在WebKit上加入對WebRTC的支持。最初,該項目在WebKit的GTK移植中使用OpenWebRTC增加對WebRTC支援,後續的支援,將會逐漸放入到WebCore中,這樣基於WebKit的所有移植環境就能方便的使用。同時,該項目未來還將接入更多的WebRTC實現後段,比如webrtc.org等。
這些工作會使蘋果公司更容易的在Safari上實現WebRTC功能。
蘋果公司做了什麼?
WebKit只是一個流覽器引擎,每個使用它的流覽器,都是一個移植版本(port)。webrtcinwebkit項目,最早在WebKit的GTK移植上進行了測試,在7月的時候,Linux版流覽器實現了對getUserMedia介面的支援。
針對不同流覽器針對WebRTC協議棧的實現,可以參見這個幻燈片。作為背景知識,它介紹了不同流覽器如何將WebRTC實現融合到自己的架構中去。
對於蘋果公司,mac平臺上的Safari和iOS平臺上的Safari是獨立的WebKit移植版本。它們沒法直接使用之前為GTK移植版本上使用的WebRTC接入代碼。因此蘋果公司需要單獨為這兩個移植版本實現WebRTC的接入。
截至8月底,通過的git倉庫的提交記錄的篩選,蘋果公司的主要改動有:
針對mac和iOS平臺上的改動
/platform/mediastream/mac
/platform/mac-mavericks/
/platform/mac-yosemite/
針對AVFoundation介面的修改(AVVideoCaptureSource.h)
針對蘋果平臺構建檔的修改(WebCore.xcodeproj/project.pbxproj)
從改動來看,目前蘋果已經實現了對GetUserMedia和MediaStream介面在mac和iOS兩個平臺上的支援。進而支援了對音訊、視頻設備的列舉和選擇,支援視頻、音訊流作為audio和video兩個標籤的輸入來源,支援視頻抓取等等功能。
不過,和webrtcinwebkit項目最初實現一樣,這些代碼改動主要在mac系統移植部分。這是由於WebRTC中的很多功能,涉及到平臺相關硬體設備交互、媒體流等需要在標籤頁之間共用,使得改動主要針對渲染層。
希望這些修改能夠讓我們能夠儘快的在Safari或者iOS的WebView中看見效果。
目前版本的Safari好像還沒支援,也許自己build webkit來測試還比較快
也許明年吧~~
等出現後IOS手機應該可以開放WebRTC的功能~