這是開源報報訂閱者的 Bonus 服務,小編每天整理開源報報發現許多開源工具是相輔相成的,所以接下來會將這些開源工具整理成一篇主題報導,可以更方便一起搭配使用這些開源工具來增加生產力。
策展摘要說明
WebRTC,名稱源自網頁即時通訊(英語:Web Real-Time Communication)的縮寫,是一個支援網頁瀏覽器進行即時語音對話或影片對話的API – 維基百科
這個 WebRTC 主題策展包含了從入門學習書籍到各式的 WebRTC 應用與 API 整合等開源專案
🌳 主題報導的內容會隨著發現新的開源專案持續更新,想要追蹤這篇主題報導的變更紀錄,可到這篇 po 文按讚追蹤
✍ 以主題方式整理出相關的開源專案 – 開源報報主題報導
書籍
好奇者的 WebRTC: 超越 APIs
本書由 WebRTC 實現者建立,目的在與世界分享他們來之不易的知識。
本書全是關於通訊協定和API的,不會特別談論任何軟體。 我們嘗試總結 RFC,並將所有未記錄的知識集中在一起。 這本書不是教程,也不會包含太多程式碼。
書籍網址 https://webrtcforthecurious.com/
Real-Time Communication with WebRTC 簡中翻譯電子書
在瀏覽器中提供豐富的音訊和視訊即時通訊和點對點資料交換,不需要私有外掛。這個簡明的實踐指南向你展示如何使用新興的 Web 即時通訊(WebRTC)技術來構建一個瀏覽器到瀏覽器的應用程式。
作者通過範例學習的方法非常適合那些希望理解即時通訊的 web 程式設計師,以及不熟悉 HTML5 和基於 javascript 的客戶端-伺服器 web 程式設計的電信架構師。
視訊會議
Mediasoup – 尖端 WebRTC 視訊會議
mediasoup 及其客戶端程式庫的設計目標如下
- 成為一個 SFU ( Selective Forwarding Unit )
- 支援 WebRTC 和普通 RTP 輸入和輸出
- 在伺服器端成為一個 Node.js 模組
- 在客戶端做一個小小的 Javascript 和 C++ 程式庫
- 極小化:只處理媒體層
- 訊號不可知:不要受限任何訊號通訊協定
- 超低階 API
- 支援現有的 WebRTC 端點
- 與知名的多媒體程式庫/工具整合
架構
使用案例
- 群組視訊聊天應用程式
- 一對多(或少對多) 廣播應用程式
- RTP 串流
Zipcall.io – 分散式視訊聊天
使用 Twilio STUN/TURN 架構的 WebRTC 分散式影片聊天平台。 Zipcall 提供了傳統技術無法提供的影片品質和延遲。
這個視訊聊天軟體還提供有桌面共享的功能
這個軟體的後端是使用 Nodejs

端到端加密的匿名群組視訊聊天服務
透過純粹的 WebRTC 安全視訊聊天
隱私是這個專案背後的驅動力。 它使用像 WebRTC 這樣的安全技術來直接連結參與者。 這個網站提供了 Web 應用程式,並且儘可能少的儲存資料,並且不知道任何已經建立的會話內容。 不需要任何帳戶。 不使用 cookie。
Briefing 和大多數類似專案的區別在於,它不使用分發影片串流(SFU)的中央伺服器(SFU)。 SFU 的優點是它節省了頻寬,因為自己的影片不會上傳到每個參與者,而是只上傳一次。 SFU 還可以進行客戶端可能不支援的更多優化。 但是這樣的話,影片訊號就不再是端到端的加密了,也就是說,你必須信任 SFU 提供者。 Briefing 是將資料以 peer to peer 直接傳送(“ Mesh”) ,因此在 WebRTC 實現預設情況下是端到端加密的。

Jitsi – 安全、簡單和可擴展的視訊會議,可以作為獨立的應用程式使用,也可以嵌入到 web 應用程式中
Jitsi Meet 是一個開源(Apache) WebRTC JavaScript 應用程式,它使用 Jitsi Videobridge 提供高品質、安全和可擴展的視訊會議。 在 VoIP 使用者大會的第482次會議上,可以看到 Jitsi Meet 的活動。
Jitsimeet 客戶端在你的瀏覽器中執行,而不需要在你的電腦上安裝任何東西。 你可以在 https://meet.jit.si 試用一下。
Jitsi Meet 允許非常高效的協作。 使用者可以在他們的桌面上串流媒體,或者只是一些視窗。 它還支援與 Etherpad 共享檔案編輯。
使用 mediasoup 和 WebRTC 的多方網路會議

一個群組視訊呼叫 Web 應用程式。不需要註冊和下載。
一個螢幕分享的免費群組視訊呼叫 Web 應用程式
它使用 WebRTC 建構,因此所有的視訊聊天都是點對點的。使用 WebRTC 網格實現分組視訊呼叫。因此,通話品質與通話人數成反比。甜蜜的數字是在平均高速連線中的6到8個人左右。
檔案傳輸
基於 WebRTC 的 P2P 檔案傳輸工具,靈感來自 Apple AirDrop
ShareDrop 是一款受蘋果 AirDrop 服務啟發的 Web 應用程式。 它允許你直接在裝置之間傳輸檔案,而不需要首先上傳到任何伺服器。 它使用 WebRTC 進行安全的 peer-to-peer 的檔案傳輸,使用 Firebase 進行存在管理(presence management)和 WebRTC 信號。
Shareddrop 允許你將檔案傳送到同一個區域網路中的其他裝置(即具有相同公共 IP 位址的裝置) ,而不需要任何配置——只需在所有裝置上開啟 https://www.sharedrop.io ,它們就會看到彼此。 它還允許你在網路之間傳送檔案——只需點選頁面右上角的 + 按鈕,建立一個具有唯一 URL 的房間,並與其他人共享這個你希望傳送檔案給他們的 URL,。 一旦他們在自己的裝置上用瀏覽器開啟這個頁面,你就會看到彼此的頭像。
Sharedrop 和 AirDrop 的主要區別在於,ShareDrop 需要網際網路連線來發現其他裝置,而 AirDrop 不需要網際網路連線——它在兩者之間建立特定的無線網路。 另一方面,ShareDrop 允許你在行動裝置(Android)和桌面裝置之間以及網路之間共享檔案。
Firedrop-Web – 使用 WebRTC 做檔案傳輸
這個是一個簡單的 WebRTC 檔案傳輸 Web 應用程式,前端使用 React/TypeScript 開發

APIs
簡單的 WebRTC 視訊、語音和資料頻道
Simple-peer 是一個優秀的程式庫,它使開發 WebRTC 解決方案成為小菜一碟。 它最棒的地方在於它如此優雅地隱藏了所有錯綜複雜的細節,並為基於 WebRTC 的視訊會議和資料傳輸實現提供了一個易於使用的介面。 由於螢幕共享幾乎與傳遞視訊資料相同,因此你也可以將其用於螢幕放送。
要如何使用這個程式庫可參考這篇文章 – https://dev.to/lucpattyn/easy-multiparty-video-conferencing-with-simple-peer-webrtc-library-2p52
使用 Go 實現的 WebRTC API
Pion WebRTC 是 WebRTC 的純 Go 實現。 它沒有非 Go 的相依套件,也沒有第三方 Go 相依套件。 它是按照 WebRTC API 設計的,但在需要時可能會偏離。 有關專案的指導原則 / 靈感,請參閱 DESIGN.md。
將 WebRTC 的設定簡化為可匯入的 React 元件的 NPM 套件
將 WebRTC 的即時通訊能力引入 React 應用程式。為開發人員提供了一個可客製化的 react 元件和用於後端的訊號伺服器模組( signalling server module ),從而簡化了 WebRTC 的實現。
ION – 使用 go 和 flutter 開發的分散式 RTC 系統
支援 WebRTC ,可以用來做視訊串流
架構圖

伺服器
Janus WebRTC 伺服器
Janus 是一個開源的、通用的 WebRTC 伺服器,由 Meetecho 設計和開發。 這個版本的伺服器是為 Linux 系統量身定製的,雖然它也可以為 MacOS 機器編譯和安裝。 不支援 Windows,但如果這是一個需求,眾所周知 Janus 在 Windows 10上的“ Windows 子系統 for Linux”中工作: 不要信任任何提供 .exe 檔的 repos 。 Exe 他們不是正式的,將不會得到支援。
Ant 媒體伺服器
支援 RTMP,RTSP,WebRTC 和自適應位元率( Adaptive Bitrate )。 它還可以錄製 MP4,HLS 和 FLV 的影片
還有支援 iOS/Android/Javascript SDK

擴增實境
捕獲 ARKit 場景(像‘ react-native-ARKit’)到 WebRTC 視訊串流
捕獲 ARKit 場景(像 react-native-arkit)到 react-native-webrtc 視訊流。
為了實現 ARKit 和 WebRTC 之間的整合,這個外掛不斷捕獲[ ARSCNView snapshot ]並轉換為 RTCVideoFrame。
你可以將它與 react-native-arkit 或任何 ARSCNView 實現一起使用。

也許你會有興趣
★ 歡迎使用 App / Email | Telegram 訂閱 網站更新★
你必須登入才能發表留言。