iT邦幫忙

webrtc相關文章
共有 100 則文章
鐵人賽 自我挑戰組 DAY 8

技術 捌。認識串流

目前現今比較常被使用的串流協定有 HLS, RTMP, WebRTC HLS 全名 HTTP Live Streaming,是目前最普及的串流協定之一,因為透過...

技術 搞懂 P2P 技術 (3) - WebRTC x AWS x KVS

WebRTC 全名 Web Real-Time Communication,是一個支援網頁瀏覽器進行即時語音對話或影片對話的 API WebRTC Wiki...

鐵人賽 Modern Web DAY 30

技術 Day30 WebRTC 一對多連線

上一篇我們使用 addTransceiver 單向接收串流 ,但是卻不能兩個人一起接收,今天我們要來改善這一點,主要問題是因為我們在啟動時就建立了單一的 RTC...

鐵人賽 Modern Web DAY 29

技術 Day29 使用 addTransceiver 單向接收串流

前面我們使用 RTCPeerConnection.addTrack() 來把我們的音視訊傳送給對方 const stream = await navigator...

鐵人賽 Modern Web DAY 28

技術 Day28 [實作] 一對一視訊通話(8): Docker compose 整合 TURN Server

前面的實作中,我們都是使用 google 提供的 STUN server,在 後疫情時代的 WebRTC 微學習系列 第 19 篇 中我們使用 coturn 來...

鐵人賽 Modern Web DAY 27

技術 Day27 [實作] 一對一視訊通話(7): 使用 Docker 封裝

首先我們需要有 Docker 環境,如果還沒有可以參考 Docker 安装 製作 Dockerfile 製作 dockerfile 我們需要先了解我們的程式是如...

鐵人賽 Modern Web DAY 26

技術 Day26 [實作] 一對一視訊通話(6): 關閉鏡頭或麥克風

我們在視訊通話中很常用的一個功能就是關閉鏡頭或是麥克風,今天我們將實作此功能 1. 在 index.html 中增加 <div> <but...

鐵人賽 Modern Web DAY 25

技術 Day25 [實作] 一對一視訊通話(5): 切換設備

如果我們的電腦有兩個攝影機,就會有切換裝置的需求,今天我們就來加入這個功能 在 index.html 增加兩個 select 用來選擇設備 <div&...

鐵人賽 Modern Web DAY 24

技術 Day24 [實作] 一對一視訊通話(4): 加入通話及掛斷機制

結合前兩篇我們已經實現了 MVP(Minimum Viable Product;最小可行產品),完成了最簡單的一對一通話,後續我們會慢慢強化他的功能,今天我們會...

鐵人賽 Modern Web DAY 23

技術 Day23 [實作] 一對一視訊通話(3): Client

昨天我們把 Signaling server 完成了,今天我們要繼續完成 Client 端: 細部分解 完整程式碼 測試 index.html 上一篇為...

鐵人賽 Modern Web DAY 22

技術 Day22 [實作] 一對一視訊通話(2): Signaling server

今天我們要實作 Signaling server 的部分: 建立文件 # 進入要放專案的路徑 ❯ cd ~/Desktop/WebRTC/sample #...

鐵人賽 Modern Web DAY 21

技術 Day21 [實作] 一對一視訊通話(1): 運作說明

接下來幾天,我們會實作一個一對一視訊通話的案例,我們會建立一個 client 端給使用者視訊使用 以及一個 signaling server用於信令的傳輸,最後...

鐵人賽 Modern Web DAY 20

技術 Day20 Socket.io 常用的 API

接下來我們要把前面的東西組合起來,拼湊成一個一對一的視訊系統,不過我今天們先來看看,Socket.io 有哪些常用的api。 訂閱訊息 socket.on(&q...

鐵人賽 Modern Web DAY 19

技術 Day19 部署 STUN / TURN server

安裝 coturn 使用 apt 安裝 ❯ sudo apt update ❯ sudo apt install coturn ❯ turnserver -...

鐵人賽 Modern Web DAY 18

技術 Day18 使用 GCP 免費雲端主機測試 Turn server

我們可以使用 GCP的免費方案 https://cloud.google.com/free/docs/gcp-free-tier?hl=zh-tw#free-t...

鐵人賽 Modern Web DAY 17

技術 Day17 [實作] RTCPeerConnection: 本機端模擬 P2P 的過程

上一篇我們通過簡單的例子了解 Offer / Answer 的機制,今天我們要加上視訊: Bob 通過 addTrack 把自己的音視訊軌道加入 PeerCo...

鐵人賽 Modern Web DAY 16

技術 Day16 RTCPeerConnection: Offer / Answer

在前面的文章中,已經對 WebRTC 相關的重點進行了介紹,包含網絡協商、媒體協商、如何進行網路穿透等,以及使用 WebRTC API 獲取設備及音視訊,今天我...

鐵人賽 Modern Web DAY 15

技術 Day15 [實作] 使用 Socket.io 建立聊天室

實作 聊天室 server 端,使用 SSL 聊天室 client 端,使用 SSL 為什麼要使用 Socket.io 使用webSocket 建立在...

鐵人賽 Modern Web DAY 14

技術 Day14 [實作] 分享畫面及錄影

快速測試一次分享畫面的功能 在瀏覽器的console中輸入 navigator.mediaDevices.getDisplayMedia() 實作 常常需要...

鐵人賽 Modern Web DAY 13

技術 Day13 [實作] 把視訊及音訊內容錄製下來

本篇我們將實作音視訊的錄製並下載,內容包含: 錄製影片 回放影片 下載影片 複製上一篇程式碼 cp -r take-a-photo video-...

鐵人賽 Modern Web DAY 12

技術 Day12 [實作] 使用瀏覽器來拍照並加上濾鏡

上一篇嘗試了 WebRTC 的切換設備並顯示自己的影像,今天我們將通過上一次的程式碼來做拍照的功能並且加上一些濾鏡處理,我們將實作: 在視訊中取得畫面截圖...

鐵人賽 Modern Web DAY 11

技術 Day11 [實作] 如何在 WebRTC 中切換設備

建立開發環境 我們需要一個 http server,安裝 http-server ,安裝方式如文檔 建立一個資料夾 WebRTC ,裡面包含一個 ind...

鐵人賽 Modern Web DAY 10

技術 Day10 獲取攝影機及麥克風的訪問權限

上一篇我們使用 getUserMedia 來獲取使用者裝置權限,不過他的實際功能如其名,是用來取得使用者的媒體流(Media stream),裡面包含了要求的影...

鐵人賽 Modern Web DAY 9

技術 Day09 在瀏覽器上檢查現有設備

前幾篇介紹了 WebRTC 是如何連線的,今天我們要開始在瀏覽器上使用 WebRTC 的 API。 使用瀏覽器 + WebRTC 可以快速實現即時影音通訊,而且...

鐵人賽 Modern Web DAY 8

技術 Day08 NAT 穿透 ICE、STUN、TURN

ICE ICE(Interactive Connectivity Establishment,互動式連接建立)是用於 Offer/Answer 模式下的 NAT...

鐵人賽 Modern Web DAY 7

技術 Day07 NAT 類型

NAT 網路位址轉換(英語:Network Address Translation,縮寫:NAT)是一種實現內網主機與外網通訊的方法,它會在IP封包通過路由器...

鐵人賽 Modern Web DAY 6

技術 Day06 WebRTC 中的 Signaling Server

Signaling server 在 WebRTC 中扮演什麼角色 前面說到 WebRTC 使用 Signaling server 來交換媒體資訊與網路候選者的...

鐵人賽 Modern Web DAY 5

技術 Day05 媒體協商與SDP

媒體協商 上一篇提到,要進行 WebRTC的連線需要處理以下兩個問題,今天我們就來看看媒體協商的部分。 必須要先知道要如何與對方連線 必須了解彼此支援哪些媒體...

鐵人賽 Modern Web DAY 4

技術 Day04 如何通訊-網路協商

WebRTC 通訊 WebRTC 最常見的應用場景就是一對一的視訊通話,當我們準備和另一端的人進行點對點的連線,會遇到哪些問題呢? 必須要先知道要如何與對方連...

鐵人賽 Modern Web DAY 3

技術 Day03 WebRTC 架構

WebRTC整體架構圖取自官網如下 https://webrtc.github.io/webrtc-org/architecture/# 上方三個箭頭...