媒体服务中的转换和作业
警告
Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南。
提示
是否想要生成缩略图、将两个视频拼接在一起、对视频进行子剪辑或将其旋转(诸如此类)? 有关媒体服务示例代码,请参阅示例页面。
本主题提供有关转换和作业的详细信息,并解释这些实体之间的关系。
典型工作流
转换就像是一个食谱。 它可以帮助你一次性创建脚本(步骤 1),然后使用该脚本提交作业(步骤 2)。
- 创建转换。
- 在该转换下提交作业。
- 列出转换。
- 请删除将来不打算使用的转换。
示例
假设希望提取所有视频的第一帧作为缩略图,应采取的步骤如下:
- 定义脚本或者用于处理视频的规则:“使用视频的第一帧作为缩略图”。
- 对于每个视频,请告知服务:
- 在何处查找该视频。
- 在何处写入输出缩略图。
注意
属于日期/时间类型的转换和作业的属性始终采用 UTC 格式。
转换
转换可用来配置对视频进行编码或分析的常见任务。 每个转换描述了用于处理视频或音频文件的脚本或任务工作流。 单个转换可以应用多个规则。 例如,转换可以指定以给定的比特率将每个视频编码成 MP4 文件,并从该视频的第一帧生成缩略图。 针对要包含在转换中的每个规则,请添加一个 TransformOutput 条目。 使用预设来告知转换要如何处理输入媒体文件。
查看架构
在媒体服务 v3 中,预设是 API 本身中的强类型化实体。 可以在开放 API 规范(或 Swagger)中找到这些对象的“架构”定义。 也可以在 REST API、.NET SDK 或其他媒体服务 v3 SDK 参考文档中查看预设定义(例如 StandardEncoderPreset)。
创建转换
可以使用 REST、CLI 或任何已发布的 SDK 来创建转换。 媒体服务 v3 API 由 Azure 资源管理器驱动,因此,也可以使用资源管理器模板在媒体服务帐户中创建和部署转换。 可以使用 Azure 基于角色的访问控制来锁定对转换的访问。
更新转换
如果需要更新转换,请使用“更新”操作。 此操作旨在对底层 TransformOutputs 的说明或优先级进行更改。 完成所有正在进行的作业后,应完成更新。 如果你想要重写脚本,则需要创建新的转换。
作业
作业是针对媒体服务的实际请求,目的是将转换应用到给定的输入视频或音频内容。 创建转换后,可以使用媒体服务 API 或任何已发布的 SDK 来提交作业。 Job 指定输入视频位置和输出位置等信息。 可以使用以下各项指定输入视频的位置:HTTPS URL、SAS URL 或资产。
来自 HTTPS 的作业输入
如果内容已经可以通过 URL 进行访问,并且你不需要将源文件存储在 Azure 中(例如,从 S3 导入),请使用来自 HTTPS 的作业输入。 如果你的内容已存储在 Azure Blob 存储中,但不需要将文件存储在资产中,则此方法也适用。 目前,此方法仅支持使用单个文件作为输入。
资产作为作业输入
如果输入内容已在资产中,或者内容已存储在本地文件中,请使用资产作为作业输入。 如果你打算发布输入资产以供流式传输或下载(例如,要发布 MP4 文件以供下载,同时想要执行语音转文本或人脸检测),这也是一个不错的选择。 此方法支持多文件资产(例如,在本地编码的 MBR 流集)。
检查作业进度
使用事件网格监视事件可以获取作业的进度和状态。 有关详细信息,请参阅使用事件网格监视事件。
更新作业
对作业实体进行的更新操作可以用于在作业提交之后修改说明或优先级。 仅当作业仍处于排队状态时,对优先级属性所做的更改才有效。 如果作业已开始处理或已完成,则更改优先级不起作用。
编码示例
有关编码,请参阅全面的编码示例列表。
获得帮助和支持
如果有任何疑问,可以联系媒体服务,或者使用以下方法之一关注我们的更新:
- 问答
-
Stack Overflow。 使用
azure-media-services
标记问题。 - @MSFTAzureMedia 或使用 @AzureSupport 请求支持。
- 通过 Azure 门户提交支持票证。