发布于: Aug 26, 2022
使用 Amazon Chime 开发工具包构建的交互式实时事件解决方案能应对传统在线会议平台应用于实时广播事件时的许多不足,包括出席人数限制、访问控制和参与者筛选
几天我要为大家介绍一个云技术的综合运用产品—— Amazon Chime。在本教程中,我将说明如何部署交互式实时事件解决方案。通过该解决方案,演讲者可以向大量预选观众进行演示,主持人可以筛选参加广播的与会者。这个使用 Amazon Chime 开发工具包构建的交互式实时事件解决方案能应对传统在线会议平台应用于实时广播事件时的许多不足,包括出席人数限制、访问控制和参与者筛选。
这不仅是运行实时事件的可行解决方案、是构建自己的事件应用程序的起点,而且还是 Amazon Chime 开发工具包复杂用例的示例,涉及多个会议以及与其他 Amazon Web Services 服务的集成。GitHub 存储库 amazon-chime-live-events 中提供了此解决方案的代码和详细的技术文档。该代码依据 Apache 许可证 2.0 获得许可。
公司、政界人士和其他公众人物举行大型聚会,并点名举手的观众提问。组织举办活动,多位演讲者轮流面向数千人进行演讲。该解决方案使您可以在线上处理这些类型的事件。可以应用此解决方案的其他场景:
- 问答式会议,例如市政厅。
- 召开私人广播会议,而无需与会者创建账户。
- 现场表演后结识名人的 VIP 体验。
- 一个有很多观众和几个活跃参与者(例如音乐家和嘉宾演讲者)的远程仪式。
该解决方案包含三种不同的用户体验:与会者应用程序、主持人应用程序和人才应用程序。
- 与会者是将观看实时事件的人员。创建实时事件时,可以指定哪些与会者可以举手提问。
- 主持人看到与会者的问题,并负责通过一对一采访来审查与会者。主持人控制将哪些与会者提升到实时广播中。
- 人才通常是事件的主题。他们在广播的实时会议中,并且能够与进出实时会议的其他人进行交互。
主持实时事件的典型流程如下:
- 通过触发 Amazon Web Services Lambda 测试事件来生成实时事件,测试事件会从您上传到 Amazon Simple Storage Service (Amazon S3) 的 CSV 文件中读取与会者、主持人和人才的列表。
- Lambda 函数会生成唯一的加入链接,以使用您喜欢的传递机制(例如电子邮件)分发给所有参与者。
- 主持人在开始时间之前登录事件,并帮助设置人才。
- 主持人开始广播。
- 在广播期间,与会者单击举手按钮向主持人提交问题。
- 主持人将他们正考虑加入实时广播的与会者排成一队,并逐一采访它们。
- 选定的与会者被置于虚拟休息室中,他们可以在其中观看实时广播并等待上线。
- 主持人会在将与会者提升到实时广播时对其进行介绍,以便他们与人才或其他实时广播参与者进行交谈或互动。
该解决方案分为四个不同的 Web 应用程序,每个 Web 应用程序都构建为 HTML、JavaScript 和 CSS 资产的单独集合。四个应用程序是上述三个用户体验(与会者、主持人和人才),以及用作事件广播源的第四个应用程序。
每个应用程序都使用适用于 JavaScript 的 Amazon Chime 开发工具包和网络浏览器的 WebRTC 堆栈来加入视频会议。这些应用程序是在 React 中构建的无服务器单页应用程序,并使用 Amazon CloudFront 和 Amazon Web Services Lambda@Edge 从 Amazon S3 提供服务。Lambda@Edge 用于根据请求 URL 确定要返回的 HTML 文件 — /attendee 将返回 attendee.html 文件。
为这些应用程序提供支持的后端堆栈遵循标准的无服务器架构。它使用 Amazon API Gateway 路由到各种 Amazon Web Services Lambda 函数,这些函数访问 Amazon DynamoDB 以实现持久状态管理,并使用 Amazon Chime API 来管理视频会议。
该解决方案还使用 API Gateway 的 WebSocket API 提供双向消息传递,从而:
- 将与会者的举手情况发送给主持人。
- 使主持人可以远程控制与会者和人才音频和视频。
- 传达关于何时将与会者添加到实时广播源中或将其从中删除的信息。
该解决方案的最后一部分是用于广播事件的堆栈。该堆栈在 Amazon Elastic Container Service (Amazon ECS) 中运行 Docker 容器。在事件期间,该容器在 Firefox 中运行广播应用程序。系统将抓取屏幕并将其输出到 RTMP 终端节点。RTMP 源将转码为 HTTP 实时流 (HLS),以便在与会者的事件视图中播放。
相关文章