亚马逊AWS官方博客
通过实时输入中断合并配置优化 Amazon IVS 直播到 VOD 的流程
Original URL: https://aws.amazon.com/blogs/media/optimizing-amazon-ivs-live-to-vod-with-live-input-interruptions/
亚马逊互动视频服务(Amazon IVS)推出了“合并碎片流”功能,作为其直播自动录制到 Amazon S3 功能的增强。此弹性功能旨在当广播输入流中断后自动将多个录制合并在一起,并解决流媒体可能遇到各种网络条件时带来的挑战。
为了解释这一功能的细节,并了解对用户的好处,我们首先需要检查 Amazon IVS 如何实例化直播频道,以及自动录制到 Amazon S3 的功能。Amazon IVS 是一种全托管的端到端视频交付服务,针对直播和互动进行了优化。它的核心好处之一是从底层基础架构中抽离出来,让开发人员专注于构建应用程序。客户可以提前创建频道,直到有认证的源码流开始推送,也可以通过相应服务的 API 和 Amazon Web Services(AWS) SDK 来创建频道。使用者只需要开始推送视频,Amazon IVS 频道就会上线。
当 Amazon IVS 检测到给定频道的输入流时,它会生成一个唯一的会话 ID。该 ID 包含在服务事件和流健康度量中,因此客户可以监控使用情况并可视化使用模式。当在频道上启用实时流录制到 Amazon S3 时,Amazon IVS 将会话 ID 作为资产对象密钥的一部分,以确保唯一性,给定频道可以随时间重复使用。在流媒体视频中断一段时间的情况下,Amazon IVS 可能会将输入丢失解释为会话结束并停止频道。在这种情况下,当重新建立流时,Amazon IVS 将使用新的会话 ID 再次启动频道。输出将继续在同一频道特定的播放 URL 上可用。然而,VOD 录制将被分成不同的对象:一个用于中断之前的会话 ID,一个用于之后的会话 ID。客户以前通过使用频道开始/停止事件来驱动自己的检测逻辑和 VOD 连接过程来解决这一问题。
Amazon IVS 现在可以代替您管理这一点。如果频道的输入中断,并在可配置的时间窗口内返回,Amazon IVS 可以自动将记录合并到单个视频文件中,如下图所示。
在本例中,在一个小时的实时事件中发生两次输入中断。使用可选的“合并碎片流”功能,将单个合并的视频资产记录到 Amazon S3,而不是记录三个不同部分。
配置视频资产合并
Amazon IVS 控制台和 API 现在在录制配置中包含一个合并碎片流选项。启用后,客户可以定义 1 到 300 秒之间的重新连接窗口。如果输入流中断的持续时间少于指定时间,Amazon IVS 将把 VOD 录制合并到同一个可播放的视频资产中。请注意,有些用例不适用此操作。请参阅本文后面的“不支持的用例”部分。
合并流的分析
Amazon IVS 通过在实时输入中断期间,在使用 ENDLIST HLS 标记最终确定视频资产之前,在用户指定的“重新连接窗口”期间保持录制会话打开,从而“合并”流。在会话合并的位置插入一个 DISCONTINUITY 标记,以向观看者发出发生了变化的信号。
以下示例显示了输入中断期间播放列表清单的一部分。输入在通过切片 28 的中途丢失。输入在配置的重新连接窗口内返回,Amazon IVS 添加 DISCONTINUITY 标签,然后从切片 30 继续。
使用 Amazon EventBridge 进行监控
Amazon IVS 使用 Amazon EventBridge 生成显示频道运行状态的事件。下面的消息序列图显示了 Amazon IVS 频道的典型消息,这些频道具有定义为启用合并片段流的录制配置,以及由于输入中断而创建的各种事件。突出显示“录制开始”和“录制结束”事件。
启动 Amazon IVS 频道时,会触发 Session Create 和 Stream Start 事件,Amazon IVS 会发送 Recording Start。我们可以在录制事件消息中获取录制的关键细节,包括录制的地址。可以通过以下方式获取录制的地址:recording_s3_bucket_name+recording_s3_key_prefix。
两个新字段“recording_session_id”和“recording_session_stream_ids”已添加到通过 Amazon EventBridge 发布的录制状态更改事件中,并添加了合并碎片流功能。 “recording_session_id”字段现在在所有录制事件中都可用,允许客户将录制和会话映射在一起。“recording_session_stream_ids”字段已添加到录制结束/录制结束失败事件中。此字段包含“合并”到单个录制中的所有流 ID。此字段可用于查找录制的所有流。如果没有合并,则此列表数组的长度为 1。
有关将 Amazon EventBridge 与 Amazon IVS 一起使用的更多信息,请参阅用户指南。
不支持的场景
如果 Amazon IVS 检测到不同会话之间流格式的变化,例如分辨率(例如,从全高清到高清)或视频比特率的显著变化,则服务将会将其解释为新的广播会话。即使连续会话在“重新连接窗口”间隔内,Amazon IVS 也不会合并流。您可以通过流健康仪表板或通过 GetStreamSession API 以编程方式获取输入格式的详细信息。
立即开始使用 Amazon IVS 的合并碎片流功能
合并碎片流功能增强了自动录制到 Amazon S3 的功能,允许开发人员简化他们的 VOD 工作流程。流会话合并在单个媒体录制中,因此观众可以重新观看内容,而不会因为网络不稳定或其他流中断而在直播流期间发生任何中断。