本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
系统要求
本节介绍将 Amazon Kinesis Video Streams 与 WebRTC 配合使用的基本系统要求,包括网络要求和环境。它还包括有关调试连接的信息。
联网要求
Kinesis Video Streams with WebRTC 的信令服务端点的一般网络要求是:
HTTPS 调用托管在
https://*.kinesisvideo.{region}.amazonaws.com
的端点WebSocket 与端点集成
wss://*.kinesisvideo.{region}.amazonaws.com
位于
stun:stun.kinesisvideo.{aws-region}.amazonaws.com:443
的STUN
服务器位于
turn:_._.kinesisvideo.{aws-region}.amazonaws.com:443
和turns:_._.kinesisvideo.{aws-region}.amazonaws.com:443
的TURN
服务器
注意
IPv6 STUN
和TURN
服务器目前不支持地址。
作为 RTCPeer连接的一部分,对等体之间使用的协议可以基于 TCP 或 UDP。
大多数应用程序都试图通过确定每个对等体的 IP 地址以及要作为 ICE 候选交换的端口和协议来建立直接 peer-to-peer连接。这些候选项用于尝试使用这些候选项相互连接。他们将尝试每一对,直到可以建立连接。
网络环境
如果已将来自查看器的消息发送到主设备并记录了诸如 No
valid ICE candidate
之类的日志,则未找到有效的连接路由。如果有防火墙阻止直接连接,或网络无法访问,则可能会发生这种情况。
要解决连接问题,请执行以下操作:
-
如果您不在主设备端使用
TURN
,请务必启用TURN
。TURN
在 C SDK 中默认处于启用状态。在 JavaScript SDK 中,TURN only
在 NAT 遍历中选择STUN/TURN
或。 -
对于受限的网络,例如企业网络,请尝试其他可用的网络(有线或无线网络)。
如果您正在连接 VPN,请断开连接。
注意
您可以忽略 Kinesis Video Streams TURN 服务器返回的 403 Forbidden IP
错误。服务器拒绝包含localhost
IPs192.168.*
或之类的 ICE 候选对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