本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
系統要求
本節涵蓋搭配 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:443
和turns:_._.kinesisvideo.{aws-region}.amazonaws.com:443
注意
STUN
和 TURN
伺服器目前不支援 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