系统要求 - Kinesis Video Streams

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

系统要求

本节介绍将 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:443STUN 服务器

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

注意

IPv6 STUNTURN服务器目前不支持地址。

作为 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