簡體   English   中英

通過 Websocket 發送 WebRTC MediaStream(RTP over HTTP/Websocket)

[英]Sending WebRTC MediaStream over Websocket (RTP over HTTP/Websocket)

除其他外,WebRTC 用於瀏覽器到瀏覽器的實時媒體通信,但就我而言,它將用於瀏覽器到服務器的音頻通信。

根據我收集的信息,MediaStream 是使用 RTP over UDP 傳輸的。

除了用於信令的協議之外,這將需要至少兩個額外的端口,這是我想避免的。

在 WebRTC 中,是否有可能使用 RTP over Websocket 而不是 RTP over UDP 以便我只需要使用端口 80 或 443?

不,使用 WebRTC 是不可能的。

WebRTC 旨在為瀏覽器提供三個主要功能:

  1. 能夠訪問設備的攝像頭和麥克風;
  2. 能夠建立 SRTP 會話以發送/接收音頻和視頻;
  3. 能夠在瀏覽器之間建立對等數據通道;

Web 應用程序可以通過此處定義的 Javascript API 訪問這些功能。 要訪問媒體設備,您可以使用getUserMedia()並且您將獲得一個 MediaStream 以附加到 HTML5 音頻和視頻標簽。 要創建 SRTP 會話,您需要創建對等連接並管理要使用的流。

您必須向瀏覽器請求媒體 SDP 報價,並使用任何協議(例如 websockets)將其發送給另一方。 當另一方收到您的 SDP 報價時,它可以將其注入瀏覽器,請求 SDP 答復,然后將其發回。 一旦兩個瀏覽器都有報價,它們就會使用 ICE 開始 SRTP 協商。

因此,您將無法訪問 RTP 數據包以通過 websockets 發送它們。

實際上,該計划是支持 RTCP-mux RFC 5761和某種形式的 BUNDLE(仍在爭論中)以將所有流合並到一個端口上。 但是,端口將由 ICE/STUN 選擇。 需要時,它還將使用 TURN,並最終支持 TURN-TCP,我相信它可以在端口 80 上運行。 然而,質量會受到影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM