本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Chime SDK 会议如何使用 WebRTC 媒体
Amazon Chime SDK 支持两种类型的 WebRTC 会话:标准和高清。以下主题描述了使用适用于 React JavaScript、iOS 和 Android 的 Amazon Chime SDK 客户端库时每种会话中可用的媒体。
音频
每个 Amazon Chime 客户端向会话发送一个音频流,并从会话接收一个音频流。通常,本地设备上的麦克风会生成音频。接收到的音频是从其他会话客户端发送的音频的混合。
两个会话都支持高达 48 kHz 的采样率和最多 2 个通道(立体声),使用 Opus 编解码器进行编码,比特率最高可达 128 Kbps。但是,发送和接收的音频流因客户端库类型而有所区别:
-
适用于 React 的 Amazon Chime SDK 客户端库支持以 JavaScript 设备和浏览器支持的最高采样率(最高 48kHz)发送和接收单声道和立体声音频。
-
适用于 iOS 和安卓的 Amazon Chime SDK 客户端库支持发送高达 48kHz 的单声道音频和接收 48kHz 的立体声音频。
视频
每个 Amazon Chime 客户端都可向会话发送一个视频流,并从会话接收最多 25 个视频流。发送的视频通常来自本地设备的摄像头。每个客户端最多可以选择接收 25 个视频流,并可在会话期间随时更改选择。
标准会话支持高达 1280x720、每秒 30 帧的视频分辨率,使用高达 1500kbps 的比特率编码,使用 H.264 VP8、VP9 和 AV1 进行编码。
High-definition 会话支持高达 1920x1080、每秒 30 帧的视频分辨率,使用高达 2500kbps 的比特率编码,使用 VP8、VP9 和 AV1 进行编码。 H.264
适用于 React 的 Amazon Chime SDK 客户端库支持以 JavaScript 每秒 15 帧的速度在联播中发送视频,或者使用可扩展视频编码 (SVC) 发送视频。SVC 以 100%、50% 和 25% 的目标值对具有三个空间层和三个时间层的单个视频流进行编码。此服务会根据观看者的可用带宽自动选择要发送给每位观看者的层。
适用于 iOS 和 Android 的 Amazon Chime SDK 客户端库支持每秒最多发送 15 帧。但是,实际的帧速率和分辨率由 Amazon Chime SDK 自动管理。
视频编码和解码在可用情况下使用硬件加速来提高性能。
如果客户端发送的视频比特率大于允许的最大比特率,则会话将首先开始通过控制协议向客户端发送接收者估计的最大比特率消息。 Real-Time 如果客户端继续发送比特率大于允许的最大比特率的视频,会话将丢弃传入视频流数据包。
内容共享
最多两个客户端可以向会议共享内容。内容共享可以包括视频轨道和/或音频轨道。内容共享的一个常见示例是屏幕共享,即使用屏幕截图作为内容的来源。另一示例是将预先录制的内容与视频和音频轨道共享。
会话将内容音频混合到所发送的音频流中。内容音频支持高达 48kHz 的采样率和最多 2 个通道(立体声),使用 Opus 编解码器进行编码,比特率最高可达 128kbps。
视频内容通过单独的视频流发送到会话并转发至客户端。标准会话以每秒 30 帧的速度支持高达 1920x1080 的内容视频。 High-definition会话以每秒 30 帧的速度支持高达 3840 x 2160 的内容视频。
用于内容共享的屏幕截图使用正在捕获的屏幕或窗口的分辨率、会话类型的最大内容分辨率,以及最高每秒 30 帧的速率。但是,设备和浏览器的容量可能会限制这些值。
适用于 React 的 Amazon Chime SDK 客户端库支持屏幕截图和其他来源的内容共享。 JavaScript
适用于 iOS 和安卓的 Amazon Chime SDK 客户端库支持从屏幕截图共享内容。
数据消息
数据消息为客户端提供了一种向会话中的其他客户端广播信息的方式。例如,应用程序可能会在会话期间使用数据消息共享表情符号反应。
每条数据消息包括:
-
一个主题,最长 64 个字符的字符串。
-
最高 2KB 的数据,包括主题。
客户端会向会话发送数据消息,而会话会将数据消息发送给所有连接的客户端。
会话可以选择缓存数据消息,最长五分钟。如果客户端加入或重新连接到会话,该会话将自动向客户端发送此前尚未发送的所有缓存数据消息。会话缓存最多可存储 1024 条数据消息。
一个会话支持每秒最多发送 100 条数据消息。使用实时转录时,每个客户端都通过数据消息接收转录消息,这些消息计入每秒发送的消息总数。