WebRTC 101

WebRTC (Web Real-Time Communication) 是一個支援網頁瀏覽器進行即時語音對話或影像的API,有許多廣泛用途,例如 Zoom, google meet… 這類型視訊會議的實作,由兩項核心技術構成: 1. Media Capture and Streams API 就是 MediaStreams API,可以藉由這個 API 擷取本地端的多媒體串流(e.g video, audio),顯示在瀏覽器上或是進行更多處理/傳送。 2. Peer-To-Peer Connection(P2P) 點對點連線,意指用戶端(client)電腦之間能夠互相交換資料,無需透過主機端(server)來處理各用戶端的資料傳輸。 一般來說,我們最熟悉的網路溝通模式(HTTP超文本傳輸協定)如下圖: P2P的溝通方式為,各自先連線到 server 確認彼此連線後,client A 跟 client B 就能彼此傳輸資料,如下圖: WebRTC 三種架構 P2P, SFU, MCU 圖片擷取自: liveswitch P2P 多個終端之間兩兩進行連接,形成一個網狀結構,每一端直接向另一端發送媒體或從另一端接收媒體,隨著參與方數量的增加,會難以管理 MCU 從各端點接收媒體,然後將其混合後一起廣播給所有其他端點 SFU 和 MCU不同的地方在於不會把媒體訊號混流,收到某個終端共享的音視頻流後,就直接將該音視頻流轉發給房間內的其他終端,通常用於有兩個以上的連線(e.g 多人會議) WebRTC 幾個核心的 API getUserMedia( ) 擷取 user 的 audio, video,使用時需傳入 {audio: boolean, video: boolean} const constraints = { audio: true }; navigator....

October 20, 2023 · 2 分鐘 · Rhan0