Kinesis Video Streams with WebRTC 工作方式 - Kinesis Video Streams

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

Kinesis Video Streams with WebRTC 工作方式

Amazon Kinesis Video Streams witWebRTC

以下是使用 WebRTC 的 Amazon Kinesis Video Streams 特有的关键术语和概念。

信令通道

一种资源,使应用程序能够发现、设置、控制和终止 peer-to-peer 通过交换信令消息进行连接。信令消息是两个应用程序相互交换以建立的元数据 peer-to-peer 连接。此元数据包括媒体编解码器和编解码器参数等本地媒体信息,及两个应用程序互相连接以进行实时流式传输而可能使用的网络候选路径。

流式传输应用程序可以与信令通道保持持续连接,并等待其他应用程序连接到它们。或者,只有当它们需要实时流媒体时,才能连接到信令通道。信令信道使应用程序能够在 one-to-few 模型,使用 one 的概念主设备连接到多个查看器。发起连接的应用程序使用 ConnectAsMaster API 承担主设备的责任,并等待查看器连接。然后,多达 10 个应用程序可以通过调用 ConnectAsViewer API 来承担查看器责任,以连接到该信令通道。连接到信令信道后,主应用程序和查看器应用程序可以互相发送信令消息以建立 peer-to-peer 用于直播媒体的连接。

对等

配置为通过 Kinesis Video Streams with WebRTC 实现实时双向流式传输的任何设备或应用程序(例如,移动或网络应用程序、网络摄像头、家庭安全摄像头、婴儿监视器等)。

主实例

发起连接并连接到信令通道的对等方,能够发现媒体并与任何信令通道的已连接查看器交换媒体。

重要

目前,一个信令通道只能有一个主设备。

查看者

连接到信令通道的对等方只能通过信令通道的主设备发现和交换媒体。查看器无法通过给定的信令通道发现其他查看器或与其交互。一个信令通道最多可以有 10 个连接的查看器。

WebRTC 技术概念

当你开始使用带有 WebRTC 的 Kinesis Video Streams 时,你还可以从学习 WebRTC 技术所包含的几个相互关联的协议和 API 中受益。

NAT 的会话遍历实用工具 (STUN)

一种协议,用于发现您的公有地址并确定路由器中阻止与对等方直接连接的任何限制。

使用中继绕过 NAT 的遍历 (TURN)

通过打开与 TURN 服务器的连接并通过该服务器中继所有信息来绕过对称 NAT 限制的服务器。

会话描述协议 (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 地址和端口对。A 的应用程序将每个对添加到 ICE 候选项列表中,换句话说,它收集 ICE 候选项。一旦 A 的应用程序完成收集 ICE 候选项,它可以返回 SDP。

接下来,A 的应用程序必须通过这些应用程序用于通信的信令通道将 SDP 传递给 B 的应用程序。WebRTC 标准中未指定用于此交换的传输协议。它可以通过 HTTPS 执行,安全 WebSocket,或任何其他通信协议。

现在,B 的应用程序必须生成 SDP 应答。B 的应用程序遵循 A 在上一步中使用的相同步骤:收集 ICE 候选项等。然后,B 的应用程序需要将此 SDP 应答返回给 A 的应用程序。

在 A 和 B 交换了 SDP 之后,他们会执行一系列连接检查。每个应用程序中的 ICE 算法从它在另一方的 SDP 中收到的列表中获取候选项 IP/端口对,并向其发送 STUN 请求。如果从另一个应用程序返回响应,发起方应用程序会认为检查成功,并将该 IP/端口对标记为有效的 ICE 候选项。

在所有 IP/端口对上完成连接性检查后,应用程序协商并决定使用剩余的有效对之一。当选择一个对时,媒体开始在应用程序之间流动。

如果其中一个应用程序找不到通过了连接性检查的 IP/端口对,它们将向 TURN 服务器发出 STUN 请求以获取媒体中继地址。中继地址是一种公有 IP 地址和端口,用于将接收的数据包转发到应用程序或从应用程序中转发收到的数据包,以设置中继地址。然后,将该中继地址添加到候选项列表中,并通过信令通道进行交换。

Kinesis Video Streams with WebRTC

Kinesis Video Streams with WebRTC 包括以下组件: