

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

# 多画面画面
<a name="multiviewer"></a>

Amazon Kinesis Video Streams Multivewer 是一款基于云的 WebRTC 解决方案，它允许多位观众通过一台摄像设备同时加入实时视频直播会话。此功能通过在云端处理视频流来解决边缘设备的带宽和计算限制，而不是要求摄像机向每位观看者发送单独的视频流。

**Topics**
+ [概述](#multiviewer-overview)
+ [要求和资源](#multiviewer-requirements)
+ [设置多画面画面](#multiviewer-setup)
+ [与摄取集成](#multiviewer-integration)
+ [API 操作](#multiviewer-apis)
+ [最佳实践](#multiviewer-best-practices)

## 概述
<a name="multiviewer-overview"></a>

传统的 peer-to-peer WebRTC连接要求相机设备单独向每位观看者发送视频，这可能会使带宽或计算容量有限的设备很快不堪重负。Multiviewer 通过使用基于云的 “混音器” 来解决这个问题，该混音器：
+ 接收来自摄像设备的单个视频流
+ 处理直播并将其转发给多个观众
+ 处理多人对话的音频混音
+ 保留边缘设备的计算和带宽容量

Multiviewer 对于以下用例特别有价值：
+ **智能家居安全：**多个家庭成员可以同时查看摄像头画面，而不会降低性能
+ **企业安全：安全**团队可以同时监控 Feed
+ **汽车监控：**车队经理和控制员可以同时查看车辆摄像头
+ **机器人和无人机：**多个操作员可以监控自主系统
+ **教育/监考：多名监考**员可以观察考试环节
+ **远程医疗：**医疗团队可以参与远程会诊

## 要求和资源
<a name="multiviewer-requirements"></a>

要使用 Multiviewer，你需要以下资源：
+ **Kinesis Video Streams Streams Streams Streams Stream：视频**和音频内容的摄取和存储目的地
+ **WebRTC 信令通道：允许使用 KVS We** bRTC 软件开发工具包连接到设备
+ **媒体存储配置：**使用 UpdateMediaStorageConfiguration API 链接直播和频道

**重要**  
多画面查看器目前仅在与WebRTC摄取结合使用时才可用。主播或观看者都可以启动 WebRTC 摄取会话，视频和音频轨道同时存储在 Kinesis Video Streams 视频流中，同时分发给多个观众。

**设备要求：**
+ 相机设备必须支持 KVS WebRTC 软件开发工具包
+ 查看器应用程序必须使用 KVS WebRTC 软件开发工具包
+ 所有参与者都连接到同一个信令信道

**曲目要求：**
+ 主参与者：WebRTC摄取需要音频和视频轨道
+ 观众参与者：可以发送可选音轨或根本不发送任何曲目。观看者无法发送视频曲目

## 设置多画面画面
<a name="multiviewer-setup"></a>

按照以下步骤为您的应用程序配置 Multiviewer：

1. **创建必需的资源**

   使用控制台、CLI 或创建 Kinesis Video Streams 直播和 WebRTC 信令通道。 SDKs有关详细[创建信令通道](ingestion-create-channel.md)说明，请参阅[创建视频流](ingestion-create-stream.md)和。

1. **链接资源**

   使用 UpdateMediaStorageConfiguration API 关联您的直播和频道。此配置启用多画面查看器功能。有关实现[配置目的地](configure-ingestion.md)的详细信息，请参阅。

1. **配置相机应用程序**

   使用 KVS WebRTC 软件开发工具包实现相机应用程序以调用 API。 JoinStorageSession 这将启动其他观看者可以加入的摄取会话。

1. **配置查看器应用程序**

   使用 KVS WebRTC 软件开发工具包实现查看器应用程序以调用 API。 JoinStorageSessionAsViewer 多个观众可以同时加入同一个会话。

## 与摄取集成
<a name="multiviewer-integration"></a>

Multiviewer 是在2023年推出的WebRTC摄取功能的基础上构建的。这种集成有以下几个好处：
+ **自动录制：**所有多画面画面会话都会自动录制到 Kinesis Video Streams 中，供日后播放和分析
+ **云处理：**视频处理在云端进行，从而减少了边缘设备的计算负载
+ **可扩展架构：**基于云的方法可以处理多个并发的多画面会话
+ **一致的体验：**无论网络条件如何，观众都能获得相同的高质量直播

带摄取功能的典型多画面查看器会话的工作流程是：

1. 相机设备呼叫开始 JoinStorageSession 向云端摄取视频

1. 视频流经过处理并存储在配置的 Kinesis Video Streams 流中

1. 多台观看者设备呼叫 JoinStorageSessionAsViewer 加入会话

1. Cloud mixer 将视频流分发给所有连接的观众

1. 所有参与者的音频均经过适当混合和分发

## API 操作
<a name="multiviewer-apis"></a>

多画面查看器使用与 WebRTC Ingestion 相同的 API 操作。关键 APIs 包括：
+ [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)-将信令通道链接到直播以供摄取
+ [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)-从相机设备启动摄取会话
+ [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html)-允许观众加入活跃的摄取会话
+ [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)-检索当前的媒体存储配置

有关详细的 API 用法示例，请参阅[与存储会话建立 WebRTC 连接](getting-started-ingestion.md#ingestion-establish-connection)。

## 最佳实践
<a name="multiviewer-best-practices"></a>

在实现 Multiviewer 时，请遵循以下最佳实践：
+ **针对边缘设备进行优化：**专门在需要超过 2-3 个并发查看器时使用 Multiviewer，因为这通常是边缘设备限制显而易见的地方
+ **监控 Session Health：**实施监控以跟踪会话质量和查看者连接
+ **处理连接失败：**实现相机和查看器连接的重试逻辑
+ **音频管理：**考虑默认将观众静音，以防止大型会话中出现音频反馈
+ **资源清理：**确保在观众离开会话时正确清理WebRTC连接