iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

前面花了很多篇幅說明通訊協定,以及各種通訊技術,這篇終於要說到主題 WebRTC!

什麼是 WebRTC

WebRTC(Web Real-Time Communication)是一項開放標準的即時通訊技術,它允許瀏覽器之間進行實時音頻和視訊通話、共享數據。WebRTC 的目標是在瀏覽器中實現簡單且高效的即時通訊,不需要其他第三方 plugin 。

打開 104 搜一下就可以發現這項技術常被應用在視訊會議、線上教育平台、遠程協作等領域。在 Google I/O 2023 也有討論到 WebRTC 應用在 CameraStream 上,應用層面非常廣泛。

由來

在 WebRTC 尚未問世之前,網頁上要實現視訊通話或音訊通信,通常需要依賴安裝 Flash 插件或其他外部套件,這樣才能實現這些功能。在 2010 年,Google 購併了 Global IP Solutions(簡稱 GIPS,專門從事基於 IP 網路的即時語音和影片處理軟體研發的高科技公司,其最著名的專案包括 Skype)公司。隨後,在2011年6月1日,Google 將 GIPS 公司研發的通訊技術開源,此技術得到了 Google、Mozilla、Opera 等主要瀏覽器Architecture | WebRTC大廠的大力支持,並納入了全球資訊網協會(W3C)的推薦標準中。

瀏覽器支援

  • Google Chrome 23
  • Mozilla Firefox 22
  • Microsoft Edge
  • Opera 18
  • Safari 11

架構

在 WebRTC 官方提供的架構圖分成幾個部分:紫色部分是 Web 開發者API層、藍色實線部分是面向瀏覽器開發者的API層、藍色虛線部分瀏覽器開發者可以自定義改寫。

Untitled

圖片來源: Architecture | WebRTC

  • Voice Engine
    • 負責處理語音數據的收發,包括音頻編解碼、噪音消除、回聲消除
  • Video Engine
    • 負責處理視頻數據的收發,包括視頻編解碼、視頻縮放和處理
  • Transport
    • 處理網絡層通信,包括數據包的傳輸、路由和封裝
    • 確保 WebRTC 能夠在不同的網絡條件下建立穩定的連接,包括P2P之間的通信

重點整理

  • 在 WebRTC 出現之前,網頁上實現視訊通話或音訊通信通常需要使用 Flash 插件等外部工具
  • 現今瀏覽器支援程度高
  • WebRTC 架構包括 Web 開發者 API 層、面向瀏覽器開發者的 API 層和可自定義改寫的部分。

前面花了一些篇幅說明通訊協定,到 WebRTC 的部分就來說說他是如何傳輸跟建立連線吧~接下來文章除了會介紹 Web Developer 能夠使用的 API 、如何使用,以及在 WebRTC Transport P2P連線時STUN/TURN ICE 分別是什麼

參考資料

Architecture | WebRTC
WebRTC - 維基百科,自由的百科全書 (wikipedia.org)
iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)
"WebRTC" | Can I use... Support tables for HTML5, CSS3, etc
[WebAPIs] Media Streams, Streams API and WebRTC | PJCHENder 未整理筆記


上一篇
[Day5] 即時網頁通訊技術 Polling, Long Polling, WebSocket, WebRTC
下一篇
[Day7] WebRTC 重要 API
系列文
前端工程師30天 WebRTC + Firebase 視訊通話原理到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言