1. 程式人生 > >基於WEBRTC的免外掛點到點視訊分享

基於WEBRTC的免外掛點到點視訊分享

WebRTC

WebRTC 是基於瀏覽器的實時通訊協議(Real-Time Communications),通過WebRTC,可以在瀏覽器中直接進行點到點視訊聊天和資料通訊。WebRTC目前尚在協議開發中,但是已經在Chrome stable版和Firefox’s Nightly中實現,並且 能夠互相通訊了。通過WebRTC,瀏覽器將不僅限於和伺服器通行,它將能夠直接在瀏覽器間傳輸資料。通過 STUN 協議,即使有防火牆也沒問題。

但是,WebRTC作為釋出不到一年的協議,還存在非常多的問題:

  • 文件少
  • 協議繁瑣,實現與W3C標準有出入
  • 實現不完全,Chrome下的DateChannel不支援可靠傳輸,只能傳text,還有長度限制
  • 瀏覽器依賴

但是相信隨著標準慢慢完善,支援的實現變多,這樣點到點的通訊方式一定能給Web帶來更多的可能。

入門建議:參照 W3C標準 文件,對比 https://apprtc.appspot.com/ 實現自行嘗試(apprtc是封裝最淺的實現版本)。另外需要指出的是,HTML5 Rocks 的文件是錯誤的。

WebRTC-video

這是一個用WebRTC的DataChannel特性實現的,免外掛,基於瀏覽器P2P檔案/視訊分享DEMO。
只要開啟瀏覽器就能使用,每個訪問者都是分享節點:

  • 免外掛,僅依賴瀏覽器隨時隨地地檔案分享
  • HTML5視訊邊下邊播
  • Peer-to-Peer通訊,像BitTorrent一樣在多使用者間加速分享,傳輸
  • 支援額外的HTTP,WebSocket節點,保證內容隨時可用,並能保持P2P加速的特性
  • 通訊資料量統計,等等。。。

注:

  • 視訊邊下邊播需要MP4、webm、ogg格式
  • HTTP節點需要CORS來源允許
  • WebSocket節點,檔案置於 project_path/data/ 下,檔名只能包含英文和數字,通過 ws://host:port/file/filename 新增

因為WebRTC協議還非常不完善,這個專案更多的是demo性質的,但是這個demo展現了WEB+P2P的更多可能。