運作方式 - Kinesis Video Streams

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

運作方式

Amazon Kinesis Video Streams with WebRTC 可在 Web 瀏覽器、行動裝置和其他RTC啟用 Web 的應用程式之間進行即時影片通訊。它提供安全且可擴展的基礎設施,用於建置影片串流應用程式、處理訊號、媒體串流等任務,以及與其他 AWS 服務的整合。本節說明 服務的基礎架構、元件和工作流程,協助解釋其設計原則和機制。

重要概念

以下是 Amazon Kinesis Video Streams with Web 特有的關鍵術語和概念RTC。

訊號頻道

一種資源,可讓應用程式透過交換訊號訊息來探索、設定、控制和終止 peer-to-peer連線。訊號訊息是兩個應用程式相互交換以建立 peer-to-peer連線的中繼資料。此中繼資料包括本機媒體資訊,例如媒體轉碼器和轉碼參數,以及兩個應用程式相互連線以進行即時串流可能使用的網路候選路徑。

串流應用程式可以維持與訊號頻道之間的持續連線,並等待其他應用程式來連接它們。或者,只在需要即時串流媒體時才連線到訊號頻道。訊號頻道可讓應用程式在模型中 one-to-few彼此連線,使用連線至多個檢視器的主機概念。啟動連線的應用程式會使用 承擔主要主機的責任,ConnectAsMasterAPI並等待觀眾。然後,最多 10 個應用程式可以藉由叫用 來承擔檢視者的責任來連線到該訊號頻道ConnectAsViewerAPI。連線至訊號頻道後,主要和檢視器應用程式可以互相傳送訊號訊息,以建立 peer-to-peer即時媒體串流的連線。

對等節點

透過 Kinesis Video Streams with Web 設定的任何裝置或應用程式 (例如,行動或 Web 應用程式、網路攝影機、家庭安全攝影機、嬰兒監視器等)RTC。

啟動連線並連線至訊號頻道的對等節點,能夠探索任何連接訊號頻道的檢視器並與之交換媒體。

重要

目前,一個訊號頻道只能有一個主節點。

觀眾

連線至訊號頻道的對等節點,只能夠探索訊號頻道的主節點並與之交換媒體。檢視器無法透過給定的訊號頻道來探索其他檢視器或與之互動。一個訊號頻道最多可以有 10 個連線的檢視器。

技術概念

當您開始使用 Kinesis Video Streams with Web 時RTC,您還可以從了解幾個相互關聯的通訊協定以及 WebRTC 技術包含APIs的通訊協定中獲益。

適用於 NAT(STUN) 的工作階段周遊公用程式

一種通訊協定,用來探索您的公有地址,並判斷路由器中會阻止直接連接對等節點的任何限制。

在 NAT(TURN) 周圍使用轉送器周遊

用來略過對稱NAT限制的伺服器,方法是開啟與TURN伺服器的連線,並透過該伺服器轉送所有資訊。

工作階段描述通訊協定 (SDP)

一種標準,描述連線的多媒體內容,例如解析度、格式,轉碼器、加密等,讓對等節點在資料開始傳輸時可以了解彼此。

SDP 優惠

客服人員傳送SDP的訊息,產生工作階段描述,以建立或修改工作階段。描述所需媒體通訊的各方面。

SDP 答案

應答器傳送SDP的訊息,以回應從提供方收到的錄用信。回答指出接受哪些方面。例如,是否接受提議中的所有音訊和視訊串流。

互動式連線建立 (ICE)

允許 Web 瀏覽器與對等節點連接的框架。

ICE 候選人

可供傳送端對等節點用來通訊的方法。

STUN、 TURN和 如何一起ICE運作

讓我們以兩個對等 A 和 B 案例為例,兩者都使用 WebRTC 對等對等對等進行雙向媒體串流 (例如,視訊聊天應用程式)。當 A 想打電話給 B 時會發生什麼情況?

若要連線至 B 的應用程式,A 的應用程式必須產生SDP優惠。SDP 優惠包含 A 應用程式想要建立的工作階段相關資訊,包括要使用的轉碼器、這是音訊或影片工作階段等。它還包含ICE候選清單,這是 B 的應用程式可以嘗試用來連線至 A 的 IP 和連接埠對。

若要建立ICE候選清單,A 的應用程式會對STUN伺服器發出一系列請求。伺服器傳回發出請求的公有 IP 地址和連接埠配對。應用程式會將每一對新增至ICE候選清單,換句話說,它會收集ICE候選。一旦 A 的應用程式完成收集ICE候選者,它可以傳回 SDP。

接下來,A 的應用程式必須透過這些應用程式通訊的訊號管道,將 傳遞SDP至 B 的應用程式。WebRTC 標準中未指定此交換的傳輸通訊協定。它可以透過 HTTPS、安全 WebSocket或任何其他通訊協定執行。

現在,B 的應用程式必須產生SDP答案。B 的應用程式遵循上一個步驟中使用的相同步驟 A:收集ICE候選者等。然後,B 的應用程式需要將此SDP答案傳回 A 的應用程式。

在 A 和 B 交換 之後SDPs,他們會執行一系列的連線檢查。每個應用程式中的ICE演算法會將候選IP/port pair from the list it received in the other party's SDP, and sends it a STUN request. If a response comes back from the other application, the originating application considers the check successful and marks that IP/port配對視為有效的ICE候選。

在所有 IP/連接埠配對上完成連線檢查後,應用程式會交涉並決定使用其中一個剩餘的有效配對。選取配對後,媒體就會開始在應用程式之間流動。

如果其中一個應用程式找不到傳遞連線檢查的 IP/連接埠對,他們將向TURN伺服器提出STUN請求以取得媒體轉送地址。轉送位址是公有 IP 地址和連接埠,可轉送往返於應用程式收到的封包,以設定轉送地址。然後,此轉送地址會新增至候選項清單,並透過訊號頻道交換。

元件

Kinesis Video Streams with WebRTC 包含下列元件: