系統要求 - Kinesis Video Streams

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

系統要求

本節涵蓋搭配 WebRTC 使用 Amazon Kinesis Video Streams 的基本系統需求,包括網路需求和環境。它也包含偵錯連線的相關資訊。

網路要求

Kinesis Video Streams with WebRTC 訊號頻道服務端點的一般聯網需求如下:

  • 託管於 的端點的 HTTPS 呼叫 https://*.kinesisvideo.{region}.amazonaws.com

  • WebSocket 與端點的整合 wss://*.kinesisvideo.{region}.amazonaws.com

  • STUN 伺服器位於 stun:stun.kinesisvideo.{aws-region}.amazonaws.com:443

  • TURN 伺服器位於 turn:_._.kinesisvideo.{aws-region}.amazonaws.com:443turns:_._.kinesisvideo.{aws-region}.amazonaws.com:443

注意

STUNTURN 伺服器目前不支援 IPv6 地址。

在對等之間用作 RTCPeerConnection 一部分的通訊協定可以是 TCP 或 UDP。

大多數應用程式會嘗試透過判斷每個peer-to-peer的 IP 地址,以及做為 ICE 候選項目交換的連接埠和通訊協定,來建立直接的點對點連線。這些候選項目用於嘗試使用這些候選項目彼此連線。他們會嘗試每個配對,直到可以建立連線為止。

網路環境

如果來自檢視器的訊息已傳送至主伺服器,並記錄 No valid ICE candidate 等日誌,則找不到有效的連線路由。如果防火牆防止直接連線,或無法連線網路,就可能會發生這種情況。

執行下列動作來疑難排解連線問題:

  • 如果您不是TURN在主端使用 ,請務必啟用 TURN

    TURN 在 C 開發套件中預設為啟用 。在 JavaScript 開發套件中,選取 NAT 周遊TURN only中的 STUN/TURN或 。

  • 對於受限的網路,例如企業網路,請嘗試其他可用的網路 (有線或無線)。

    如果您要連線至 VPN,請中斷與 VPN 的連線。

注意

您可以忽略 Kinesis Video Streams TURN 伺服器傳回的 403 Forbidden IP錯誤。伺服器會拒絕包含 localhost IPs 的 ICE 候選配對,例如 192.168.*10.0.0.*

這可能會導致某些但不是全部的 ICE 候選配對失敗。

偵錯進行中連線

有幾個領域可能會導致已建立、持續的 WebRTC 連線發生問題,但聯網是最常見的。

您可以將 export AWS_KVS_LOG_LEVEL=1設定為環境變數,從 SDK 確認 VERBOSE 層級日誌。

注意

如果在分配的逾時內找不到候選配對,ICE 代理程式會傳回錯誤狀態 0x5a00000d

如需日誌層級的詳細資訊,請參閱 GitHub

export AWS_KVS_LOG_LEVEL=1 ./kvsWebrtcClientMasterGstSample TestChannel

您將看到類似以下的日誌。您可以從這些日誌確認互動式連線建立 (ICE) 候選 (IP 地址和連接埠) 和選取的候選配對。

2023-02-13 05:57:16 DEBUG iceAgentReadyStateSetup(): Selected pair w1UdV9fE+_/CuBel1pl, local candidate type: srflx. Round trip time 7 ms. Local candidate priority: 1694498815, ice candidate pair priority: 7240977859836116990 2023-02-13 05:57:16 INFO onConnectionStateChange(): New connection state 3 2023-02-13 05:57:16 DEBUG rtcPeerConnectionGetMetrics(): ICE local candidate Stats requested at 16762678365731494 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate IP Address: XXX.XXX.XXX.XXX 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate type: srflx 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate port: 38563 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate priority: 1694498815 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate transport protocol: udp 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate relay protocol: N/A 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Local Candidate Ice server source: stun.kinesisvideo.ap-northeast-1.amazonaws.com 2023-02-13 05:57:16 DEBUG rtcPeerConnectionGetMetrics(): ICE remote candidate Stats requested at 16762678365732111 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Remote Candidate IP Address: XXX.XXX.XXX.XXX 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Remote Candidate type: srflx 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Remote Candidate port: 45867 2023-02-13 05:57:16 VERBOSE signalingClientGetCurrentState(): Signaling Client Get Current State 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Remote Candidate priority: 1685921535 2023-02-13 05:57:16 DEBUG logSelectedIceCandidatesInformation(): Remote Candidate transport protocol: udp