使用 Azure 媒体服务 v3 实时传送视频流
警告
Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南。
注意
Google Widevine 内容保护服务目前在由世纪互联运营的 Microsoft Azure 区域中不可用。
使用 Azure 媒体服务可将直播活动传送到 Azure 云中的客户。 若要使用媒体服务流式传输实时事件,需要设置一个实时视频编码器,用于将来自摄像头(或其他设备,如笔记本电脑)的信号转换为发送到媒体服务的贡献源。 贡献源可包括与广告相关的信号,例如 SCTE-35 标记。 有关推荐的实时传送视频流编码器的列表,请参阅实时传送视频流编码器。
如果你以前未使用过本地编码器,请尝试阅读使用 OBS 创建 Azure 媒体服务实时流快速入门。
动态打包和交付
借助媒体服务,可以利用动态打包,以便预览和广播贡献源中采用 MPEG DASH、HLS 和平滑流式处理格式的实时流。 观看者可以使用任何与 HLS、DASH 或平滑流式处理兼容的播放器播放实时流。 查看经过测试的播放器列表并尝试学习媒体服务第三方播放器示例。
实时事件类型
实时事件可以引入和处理实时视频源。 实时事件可以设置为:
- 直通(如果本地实时编码器发送多比特率流),或
- 实时编码(如果本地实时编码器发送单比特率流)。 有关实时输出的详细信息,请参阅实时事件和实时输出。
直通
使用直通实时事件(基本或标准)时,可以依赖本地实时编码器生成多比特率视频流,并将其作为贡献源发送到实时事件(使用 RTMP 或分段 MP4 输入协议)。 实时事件随后会将传入视频流传递给动态打包器(流式处理终结点),而无需进一步处理。 直通实时事件已针对长时间运行的实时事件或 24x365 线性实时传送视频流进行优化。
实时编码
若要使用实时编码,请配置本地实时编码器以将单比特率视频(聚合速率高达 32Mbps)发送到实时事件(使用 RTMP 或分段 MP4 输入协议)。 实时事件将传入的单比特率流转码为不同分辨率的多比特率视频流。 这可以改进使用行业标准协议(例如 MPEG-DASH、Apple HTTP Live Streaming (HLS) 和 Microsoft 平滑流式处理)的播放设备的传送效果。
实时事件选项
动态加密
使用动态加密可以借助 AES-128 或三种主要数字版权管理 (DRM) 系统中的任何一种对直播或点播内容进行动态加密:Microsoft PlayReady 和 Apple FairPlay。 媒体服务还提供了用于向已授权客户端传送 AES 密钥和 DRM(PlayReady、Widevine 和 FairPlay)许可证的服务。 有关详细信息,请参阅动态加密。
动态筛选
动态筛选用于控制发送到播放器的轨迹数目、格式、比特率和演播时间窗口。 有关详细信息,请参阅筛选器和动态清单。
实时听录
实时听录是一项功能,可将其用于直通或实时编码的直播活动。 有关详细信息,请参阅实时听录。 启用此功能后,服务将使用认知服务的语音转文本功能将传入音频中的口语转录为文本。 然后,可以在 MPEG-DASH 和 HLS 协议中将此文本连同视频和音频一起传输。
重要
应该对实时事件使用 2 秒的 GOP 大小。 对于包含实时听录内容的直通实时事件,必须使用 4 秒或更低的 GOP 大小,以获取正确的听录数据。 如果你选择使用更高的 GOP 大小,听录数据可能有缺陷,例如缺少内容。
隐藏式字幕、副标题和定时元数据传递的安全注意事项
Azure 媒体服务的动态加密和 DRM 功能在尝试保护包含实时听录、隐藏式字幕、字幕或定时元数据的内容传递时存在一些限制。 DRM 子系统(包括 PlayReady 和 FairPlay)不支持文本跟踪的加密和许可。 如果文本跟踪缺少 DRM 加密,则对实时听录、手动插入的隐藏式字幕、上传的字幕或可作为单独跟踪插入的定时元数据信号等内容的保护能力将会受限。
若要保护字幕、副标题或定时元数据轨道,请遵循以下准则:
使用 AES-128 明文密钥加密。 启用 AES-128 明文密钥加密时,可以将文本跟踪配置为使用与音频和视频段遵循相同加密模式的完整“信封”加密技术进行加密。 然后,在使用经过身份验证的 JWT 令牌从媒体服务密钥传送服务请求解密密钥后可以解密这些段。 此方法受 Azure Media Player 支持,但可能并非在所有设备上都受支持,并且可能需要一些客户端开发工作,以确保它在所有平台上都成功。
警告
如果不遵循上述准则,字幕、隐藏式字幕或定时元数据文本都将作为未加密的内容访问,这些内容可能会在预期的客户端传送路径之外被截获或共享。 这可能会导致信息泄漏。 如果担心字幕或副标题的内容在安全交付场景中泄露,请联系媒体服务支持团队,了解有关保护内容传递的上述指南的详细信息。
实时传送视频流工作流
若要了解媒体服务 v3 中的实时传送视频流工作流,首先需要查看并理解以下概念:
常规步骤
在媒体服务帐户中,确保流式处理终结点(来源)正在运行。
创建直播活动。
创建事件时,可以将其启动方式指定为自动启动。 或者,可以在准备好开始流式传输后,启动事件。
如果将 autostart 设置为 true,则直播活动会在创建后立即启动。 只要直播活动开始运行,就会开始计费。 必须显式对直播活动资源调用停止操作才能停止进一步计费。 有关详细信息,请参阅直播活动状态和计费。获取引入 URL 并配置本地编码器以使用 URL 发送贡献源。
请参阅推荐的实时编码器。获取预览 URL 并使用它验证来自编码器的输入是否实际接收。
创建新的资产对象。
每个实时输出与一个资产相关联,用于将视频记录到关联的 Azure blob 存储容器。
创建实时输出并使用创建的资产名称,使流能够存档到资产中。
实时输出在创建时启动,在删除后停止。 删除实时输出不会删除基础资产和该资产中的内容。
使用内置的流式处理策略类型创建流式处理定位符。
要发布实时输出,必须为关联的资产创建流式处理定位符。
列出流式处理定位符上的路径,以获取要使用的 URL(这些是确定性的)。
获取要从中流式传输的流式处理终结点(来源)的主机名。
将步骤 8 中的 URL 与步骤 9 中的主机名合并,获取完整的 URL。
如果希望停止查看直播活动,则需要停止流式处理活动并删除流式处理定位符 。
如果已完成流式处理事件,并想要清理先前设置的资源,请遵循以下过程。
- 停止从编码器推送流。
- 停止直播活动。 直播活动停止后,不会产生任何费用。 需要重新启动它时,它会采用相同的引入 URL,因此无需重新配置编码器。
- 除非想要继续以点播流形式提供直播活动的存档,否则可以停止流式处理终结点。 如果直播活动处于停止状态,则不会产生任何费用。 但是,如果流式处理终结点仍在运行,则会产生费用。
实时输出要存档到的资产,在删除实时输出时,会自动成为点播资产。 必须先删除所有实时输出,然后才能停止实时事件。 在停止时,可以使用可选标志 removeOutputsOnStop 自动删除实时输出。
提示
请参阅实时传送视频流教程,其中介绍了实现上述步骤的代码。
其他重要文章
实时传送视频流常见问题解答
请参阅实时传送视频流常见问题解答。