使用AWS 元素媒体直播进行图像插入和输入切换
在本实验中,您将在视频流上插入静态图像(也称为图形或视频覆盖图),创建多个输入并将这些输入附加到MediaLive通道,然后在多个输入之间切换。
SPL-234-版本1.0.0
实验室概述
流实时视频事件时,通常在不同的输入之间切换。例如:
- 从实时流切换到预先录制的文件,然后再回到实时流。
- 如果是多场现场直播,则在不同的视频源之间切换。
将图像或文本覆盖在实时流上也可能有用(或要求)以:
- 通过将徽标,水印或其他图像叠加到视频上,标识正在流式传输的内容的所有者或来源。
- 通过将文本覆盖在流上来表示实时或预先录制的内容。
- 宣传即将发生的事件或其他号召性用语。
- 提供电话号码或网址。
在本实验中,您将:
- 在视频流上插入静态图像(也称为图形或视频叠加层)
- 创建多个输入并将这些输入附加到MediaLive频道
- 在多个输入之间切换
在实验室设置期间,AWS 云Formation模板将创建实时流工作流程。
1 源内容被输入到AWS 元素媒体直播通道中,该通道接受该输入
2 并将其压缩为适合通过互联网流式传输的多个较低分辨率的版本。
3 MediaLive将压缩的流馈送到AWS Elemental 媒体包中
4 它将临时缓存视频,然后打包并根据请求将其提供给观众。
实际上,为了服务于成百上千的同时观看者,打包的视频流需要通过大型发行网络散开。这称为内容交付网络(CDN)。 Amazon 云Front是一个CDN。为了节省时间在本实验中,您将不会创建CloudFront分配。相反,您将直接从MediaPackage播放视频。
5 在本实验中,源将是Amazon S3存储桶中的文件,循环播放以模拟实时提要。您将使用MediaLive中的“计划”功能在视频上插入静态图像(也称为视频覆盖),并在多个输入之间切换。
涵盖的主题
在本实验结束时,您将能够:
- 在视频流上插入静态图像
- 创建多个输入
- 将多个输入附加到MediaLive频道
- 在直播流播放期间在多个输入之间切换
技术知识先决条件
该实验基于在 使用MediaLive,MediaPackage和Amazon 云Front构建直播视频频道 自定进度的实验室(SPL-207)。
为了成功完成本实验,您应该熟悉使用AWS Elemental Media 服务构建实时流工作流的基本过程,包括:
- 将MediaLive输入连接到MediaLive频道
- 配置MediaLive频道
- 配置MediaPackage频道
- 从MediaPackage频道播放视频
您还应该熟悉AWS管理控制台的基本导航。
任务1:查看实时流工作流程
在此任务中,您将启动由CloudFormation模板自动创建的MediaLive频道,并从MediaPackage验证播放。
- 在里面 AWS管理控制台,点击 服务 菜单,然后单击 MediaLive.
这将带您进入MediaLive页面。
- 请点击 服务 再次,然后右键单击 媒体包 然后选择 在新标签页中打开链接.
媒体包将会出现一个新标签,但您仍将位于 服务 落下。
-
请点击 关 在“服务”菜单底部附近。
-
在AWS 元素媒体直播导航面板中,单击 输入项.
如果看不到“输入”,请单击 导航 图标 然后选择 输入项 从列表中。
请注意 州 输入的是 Attached。这意味着输入正在馈入MediaLive通道,在此将根据通道中的指令对其进行转码。
-
在左侧的导航窗格中,选择 频道.
请注意 州 频道的是 闲.
-
点击 名称 查看频道详细信息。
名称将如下所示: qls-129148-215039265242e4b2-livestream.
在里面 状态 部分,您可以看到已连接输入,并且正在运行的管线为零。
默认情况下,MediaLive在冗余模式下工作,输出两个相同的流。流水线代表两个冗余输出。它们不是主/备份关系,两个管道都是活动输出。
-
请点击 开始
的 频道状态 现在开始。大约两分钟后,频道状态将变为 跑步,此时MediaLive将提取输入源并对其进行编码。
请注意,现在有两个管道正在运行(双输出),表明该通道正在正常运行。
-
点击 目的地 标签。
在里面 目的地 部分,请注意有两个指向MediaPackage的管道目标(默认情况下,MediaLive通道是冗余的)。
-
导航到 媒体包 您之前打开的控制台。
-
在里面 频道 下节 ID,单击MediaPackage频道的链接。
这将带您到MediaPackage频道的详细信息页面。
注意 终点 部分。
媒体包端点是缓存来自编码器(MediaLive)的视频片段的位置。当播放器设备请求视频时,它就是从此位置发出的。
该通道具有Apple HLS端点。 Apple HLS是一种自适应比特率(ABR)打包格式。
使用ABR打包时,压缩的视频流被打包成段,通常每个段2-10秒。这允许视频播放器通过从可用分辨率/比特率列表中请求连续的分段来适应不断变化的网络条件。
有两种方法可以检查MediaPackage中流的回放:
-
点击 玩 链接 终点 部分,然后单击 播放图标。
播放几秒钟后,关闭内置播放器。
-
在里面 终点 下节 网址,突出显示并复制URL,然后粘贴到Internet浏览器中。
使用方法:
-
苹果浏览器:将URL粘贴到Safari浏览器中并播放。
-
微软Edge:将网址粘贴到 地址栏 然后选择 输入.
-
Chrome浏览器或其他浏览器: 使用 JW 玩er流测试器
- 导航 //developer.jwplayer.com/tools/stream-tester/
- 将链接粘贴到 档案网址 字段并单击 测试流.
使播放窗口保持打开状态以备后用。
现在,您已验证实时流工作流正在运行。在以下任务中,您将配置MediaLive插入静态视频叠加并在多个输入之间切换。
任务2:将静态图像插入实时流(视频叠加)
条款 静态影像 和 图形 有时在图像插入的上下文中可以互换使用。在本实验中,我们将使用术语 静态影像.
静态图片会使用 时间表 MediaLive中的功能。
时间表可以提前创建(在频道启动之前),也可以在播放频道时创建。
如果在通道运行时创建,则开始时间必须至少为15秒。
在此任务中,您将在播放频道时创建图像插入操作。
可以指定几个属性:
- 静态图像文件本身的路径(必需)
- 静态图片应显示的时间(必填)
- 它在视频帧中的位置,X和Y尺寸(与视频帧的左侧和顶部的距离)
- 图片的尺寸
- 屏幕上的持续时间(即何时消失)
- 淡入/淡出或切断/关闭
您可以通过在控制台的相应字段中输入值来调整静态图像的大小并设置其相对于视频帧的位置。
但是,最佳实践是使用图形编辑应用程序以视频帧的完整大小构建静态图像,将静态图像叠加在相对于帧的正确位置,并使背景透明。在这种情况下,图像无需调整大小,并且可以直接叠加在视频帧上,而没有X-Y偏移。
为此实验室提供的图像文件是通过这种方式构建的。
要查看在1280x720帧的右下角内置的静态图像的示例,请单击此处:
此静态图像的纵横比正确(16:9),但仍可能需要调整其大小以匹配输入的大小。
因此,您还需要知道输入的帧大小(分辨率),例如1920 x 1080、1280 x 720、960 x 540等。
在此任务中,输入的分辨率为 。您稍后将需要此信息。
-
导航到 MediaLive 您之前打开的控制台。
-
请点击 时间表.
-
请点击 创建 然后配置:
- 动作名称:
- 开始类型: 固定 -的 跟随 start类型与输入切换配合使用,将在本实验的后面部分进行解释。
- 动作类型: 静态图片激活
- 网址:
//s3-us-west-2.amazonaws.com/aws-tc-largeobjects/SPLs/234/graphics/aws-1280x720.png
本实验中提供的静态图像的帧尺寸为1280x720。
- 如下配置其余的静态图像字段:
-
层: 留着空白。
最多可以叠加八层-例如,跨框架底部的彩色横幅(第0层)和覆盖其上的一些文本(第1层)。在本实验中,您仅使用一层。
-
图片X 和 图像Y: 留着空白。
这些是图像从左上角偏移的距离(以像素为单位)。由于您使用的静态图像是全帧尺寸,因此没有偏移。
-
不透明度: 留着空白。默认值为100%不透明。
-
宽度:
-
高度:
静态图像本身的纵横比为正确的(16x9),但其实际大小为1280x720,因此需要按比例放大以匹配输入的大小。
-
持续时间: 留着空白。
静态图片将在流的整个持续时间内显示。
-
淡入:
该值以毫秒为单位,因此您将创建一秒钟的淡入。
-
淡出: 留着空白。此值将在以后的任务中使用。
- 向上滚动到 时间(UTC) 领域。
静态图像将在您指定的UTC时间插入。
- 要获取正确的UTC时间,请在互联网上搜索UTC时间显示,例如, //time.is/UTC .
调整窗口大小,以便您可以阅读时间并仍然看到MediaLive控制台。
您正在频道运行时创建此计划的事件。因此,图像插入时间必须比当前UTC时间至少早15秒。
- 点击 时间(UTC) 字段,然后使用滚动条选择未来至少15秒的时间。
- 滚动到底部,然后单击 创建
MediaLive将在指定的UTC时间插入静态图像。 45-120秒后,您将在播放窗口中看到结果。由于编码设置,输出类型和网络速度等因素,这是实时流固有的标准延迟。
接下来,您将使静态图像淡出。
- 请点击 创建 然后配置:
- 动作名称:
- 开始类型: 固定
- 动作类型: 静态图片停用
- 层: 留着空白。如果叠加了多个图层,则可以指定要淡出的图层。
- 淡出: -淡出值以毫秒为单位,因此您将创建一秒钟的淡出。
- 时间(UTC): 使用滚动条选择未来至少15秒的时间
- 请点击 创建
MediaLive将在指定的UTC时间淡出静态图像。 45-120秒后,您将在播放窗口中看到结果。
创建计划的动作后,无法对其进行编辑或修改。如果您需要更改设置中的某些内容(例如开始时间),请删除操作并重新创建。
-
选择 您要删除的操作旁边的框。
-
在里面 预定动作 部分,点击 动作 按钮。
-
下 修改, 选择 删除(n)个动作.
查看已调度操作列表的另一种方法是时间轴视图。
- 请点击 切换到时间轴视图 并探索这种观点。
任务3:在多个输入之间切换
输入切换的典型用例是:
- 在实况和预录内容之间切换
- 在不同地点的直播流之间切换
- 运行预录文件的播放列表
MediaLive中的输入切换包括三个步骤:
- 创建多个输入
- 将这些输入附加到通道
- 安排输入开关
可以在频道开始之前或在流期间安排输入切换动作。
频道运行时安排的操作的开始时间必须至少为15秒。
在此任务中,您将在通道运行时启动开关。
创建多个输入
您将使用简短的(持续时间为1分钟)MP4文件创建三个附加输入,这些文件将循环播放,以模拟实时供稿。
- 在左侧的导航面板中,单击 输入项.
如果看不到“输入”,请单击 导航 图标 然后选择 输入项 从列表中。
-
请点击 创建输入
-
下 输入名称,输入
将输入的分辨率(宽度x高度(以像素为单位))放入“输入”名称中是一个好习惯,这样,如果要覆盖静态图像,您便知道需要将其缩放到什么大小。
-
选择 MP4.
-
在“输入源A 网址”和“输入源B 网址”下,输入
//s3-us-west-2.amazonaws.com/aws-tc-largeobjects/SPLs/234/video/1-min-timbers-1920x1080.mp4
为了本实验的目的,两个冗余输入都使用相同的源。在实际实践中,您将使用两个相同但不同的资源。
-
请点击 创建
-
在导航窗格中,单击 输入项.
-
请点击 创建输入 然后配置:
- 输入名称:
- 输入类型: MP4
- 输入源A 网址和输入源B 网址:
//s3-us-west-2.amazonaws.com/aws-tc-largeobjects/SPLs/234/video/1-min-bunny-1920x1080.mp4
-
请点击 创建
-
在导航窗格中,单击 输入项.
-
请点击 创建输入 然后配置:
- 输入名称:
- 输入类型: MP4
- 输入源A 网址和输入源B 网址:
//s3-us-west-2.amazonaws.com/aws-tc-largeobjects/SPLs/234/video/1-min-moto-1920x1080.mp4
-
请点击 创建
-
在导航面板中,单击 输入项.
现在有四个输入。通道仅连接一个。在下一步中,您将其他输入连接到通道。
将多个输入连接到通道
-
在左侧的导航面板中,单击 频道.
-
选择频道 然后点击 停止
等待频道转到 闲 状态(约60秒)。
-
请点击 动作 然后点击 编辑.
-
在里面 渠道 部分,在 输入附件,点击 加 然后配置:
- 输入: 选择您创建的其他输入之一:
- motocross_1920x1080
- bunny_1920x1080
- timbers_1920x1080
- 请点击 确认
- 下 常规输入设置,设定 源端行为 至 循环
本实验的输入是简短的MP4文件(持续时间约1分钟)。为了模拟连续输入,文件现在将循环播放。
-
重复上一步,将其余输入连接到通道。
-
滚动到页面底部,然后单击 更新频道
-
选择频道 然后点击 开始
等待频道状态显示 跑步
安排输入开关动作
-
在 频道 页面上,单击您的频道名称以查看频道详细信息。
-
点击 时间表 标签。
-
请点击 创建 然后配置:
- 动作名称:
- 开始类型: 固定
- 动作类型: 输入开关
- 输入开关: timbers_1920x1080
- 时间(UTC): 使用滚动条选择未来至少15秒的时间
- 请点击 创建
MediaLive将在指定的UTC时间切换到新输入。 45-120秒后,您将在播放窗口中看到结果。
- 重复上述一系列步骤,从 创建 安排各种输入之间的切换。
- ...
不必为所有输入创建切换操作。如果您在进行几次切换后感觉到了概念和步骤,则可以继续执行下一个任务。
任务4:使用多个输入创建和运行播放列表
在这种使用情况下,将连续播放一系列输入文件,而无需手动切换之间也没有任何间隙。有时称为 运行播放列表。在频道空闲时将创建时间表,然后将启动频道并按顺序播放文件。
对于本练习,输入文件很短(持续时间为1分钟),因此切换更加及时。
修改输入的最终行为
在上一个任务中,您设置了 源端行为 至 循环。这样做是为了模拟连续输入。但是,在此任务中,行为将被更改,以便在文件完成后,它不会返回到开头。
- 在MediaLive中,单击 停止
等待 频道状态 以显示 闲.
-
请点击 动作 然后选择 编辑.
-
在里面 渠道 下节 输入附件 选择第一个输入。
-
下 常规输入设置, 源端行为, 选择 继续.
在“继续”设置下,到达末尾时文件将停止播放。这对于 跟随 计划中的功能,您将在此任务中创建。
- 单击下一个输入并更改 源端行为 从 循环 至 继续.
对每个输入执行此操作。
- 滚动到页面底部,然后单击 更新频道
安排各种输入之间的输入切换
-
点击 时间表 标签。
-
通过选中列表顶部的框,清除旧操作的列表,然后单击 动作 然后选择 删除(n)个动作.
-
在里面 删除时间表动作 对话框,单击 删除
-
请点击 创建 然后配置:
- 动作名称:
- 开始类型: 固定 -列表中的第一个输入操作必须是固定的开始,因为之前没有任何内容,因此没有后续内容。
- 动作类型: 输入开关
- 输入开关: 用单词选择输入 现场直播 在里面
- 时间(UTC) 使用滚动条设置未来几分钟的时间
这是为了给您提供引导时间来配置其余的交换机并允许通道启动,这可能需要多达4分钟的时间。
-
请点击 创建
-
请点击 创建 然后配置:
- 动作名称:
- 开始类型: 跟随 -使用此设置,当第一个输入文件到达末尾时,通道将自动切换到下一个配置的输入。
- 参考动作名称: 选择此新输入将遵循的输入,即紧接其之前的输入。在这种情况下,唯一可用的选择是 开始播放列表.
- 动作类型: 输入开关
- 输入开关:
- 请点击 创建
- 重复上述过程,将其他附加开关添加到列表中。
- ...
-
安排一些跟随型输入开关后,单击 开始 在页面右上角附近。
-
刷新视频播放器中的链接。
在您指定的第一个UTC切换时间之后大约45-120秒,您将清除播放列表中从一个输入到下一个输入的开关。这些是正在执行的“跟随”类型开关。
组合输入开关和图像插入操作也是很常见的。例如,实况操作可以显示文字横幅 生活。当输入切换到另一个输入(例如预先录制的采访)时,第一个静态图像可能会淡出,而新的静态图像可能会淡入。
有关更多详细信息,请参阅AWS MediaLive的在线文档。
结论
恭喜你!您现在已经成功:
- 将静态图像插入实时视频流
- 在MediaLive中创建了多个输入
- 将多个输入附加到MediaLive频道
- 播放期间在多个输入之间切换
谢谢。
结束实验室
请按照以下步骤关闭控制台,结束实验并评估体验。
-
返回AWS管理控制台。
-
在导航栏上,单击 [电子邮件 protected]<AccountNumber>,然后单击 登出.
-
请点击 结束实验室
-
请点击 好
-
(可选的):
- 选择适用的星数
- 输入评论
-
请点击 提交
- 1星=非常不满意
- 2星=不满意
- 3星=中立
- 4星=满意
- 5星=非常满意
如果您不想提供反馈,则可以关闭对话框。
其他资源
有关反馈,建议或更正,请给我们发送电子邮件至 [电子邮件 protected].