【Azure 媒体服务】使用编码预设文件(Preset.json)来自定义编码任务 -- 创建视频缩略图
问题描述
在Azure门户上创建Transform Encoding时候,只能选择 Built-in Preset 编码方式(如:H265ContentAwareEncoding)

在创建编码任务时,除了在门户上可选的几种内置的编码格式外,还可以通过自定义的编码预设文件(Preset.json)对视频文件进行编码。如 az ams transform 命令:
# Create a transform with a custom Standard Encoder preset from a JSON file and Low relative priority.
az ams transform create -a myAmsAccount -n transformName -g myResourceGroup --preset "C:\MyPresets\CustomPreset.json" --relative-priority Low
那么,如何来定义创建视频缩略图的预设编码文件呢?
问题解答
准备 preset.json 文件
查阅 az ams transform 命令的参数 --preset 的所介绍的一句话 “ In addition to the allowed values, you can also pass a path to a custom Standard Encoder preset JSON file. See https://docs.microsoft.com/rest/api/media/transforms/createorupdate#standardencoderpreset for further details on the settings to use to build a custom preset.”
查看 standard encoder preset 的介绍中包含 @odata.type,codecs,formats 等内容。
如:
{
"@odata.type": "#Microsoft.Media.StandardEncoderPreset",
"codecs": [
{
"@odata.type": "#Microsoft.Media.CopyVideo"
},
{
"@odata.type": "#Microsoft.Media.CopyAudio"
}
],
"formats": [
{
"@odata.type": "#Microsoft.Media.Mp4Format",
"filenamePattern": "{Basename}_{Bitrate}{Extension}"
}
]
}
- @odata.type 的值为固定值 #Microsoft.Media.StandardEncoderPreset,表示标准编码预设文件
- codecs为一个数组,表示对输入视频进行编码时要使用的编解码器列表。其中的两个 CopyVideo 和 CopyAudio 都是编码标记,告知编码器复复制输入视频比特流 和 制输入音频比特流。
- formats 表示编码要生成输出的文件,这里表示输出一个MP4文件。
当需要创建一个缩略图的编码文件时候,可以使用codecs 中的 JpgImage 或者 PngImage ,输出的 formats 则使用对应的 JpgFormat 和 PngFormat 。本例中使用JpgImage作为参考:
{
"@odata.type": "#Microsoft.Media.StandardEncoderPreset",
"codecs": [
{
"@odata.type": "#Microsoft.Media.CopyVideo"
},
{
"@odata.type": "#Microsoft.Media.CopyAudio"
},
{
"@odata.type": "#Microsoft.Media.JpgImage",
"start": "PT05S",
"step": "PT05S",
"range": 1,
"spriteColumn":10,
"layers": [
{
"width": "1024",
"height": "768",
"quality": 90
}
]
}
],
"formats": [
{
"@odata.type": "#Microsoft.Media.Mp4Format",
"filenamePattern": "{Basename}_{Bitrate}{Extension}"
},
{
"@odata.type": "#Microsoft.Media.JpgFormat",
"filenamePattern": "{Basename}_{Index}{Extension}"
}
]
}
以上内容会对输入视频的第5秒生成1张缩略图(range为1),宽1024px,高768px,质量为90. 输入的文件名格式为{Basename}_{Index}{Extension}。关于它们的详细说明,参照官网说明:
JpgImage :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgimage
JpgFormat :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgformat
执行 transform create 指令
az ams transform create --account-name yourmediaservicename --resource-group yourresourcegroup --name generate-thumbnail --preset custom-preset.json
如果在执行中遇见错误,可以使用 --debug 参数来查看调试详细的错误。
当执行成功后,会输出如下内容:

检验自定义编码文件的输出成果:

参考资料
JpgImage :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgimage
JpgFormat :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgformat
az ams transform create :https://learn.microsoft.com/en-us/cli/azure/ams/transform?view=azure-cli-latest#az-ams-transform-create-examples
【Azure 媒体服务】使用编码预设文件(Preset.json)来自定义编码任务 -- 创建视频缩略图的更多相关文章
- 通过 Azure 媒体服务进行高速编码
Milan Gada Azure 媒体服务首席项目经理 关于 Azure 媒体服务,客户问的最多的一个问题是能否进行高速编码.这个问题现在已经有了肯定的答案,目前有三种不同类型的 Encodin ...
- Azure 媒体服务的 RTMP 支持和实时编码器
Cenk Dingiloglu Azure 媒体服务高级项目经理 直播流媒体目前已在公共预览版中提供,其中一项受支持的输入协议便是 RTMP.RTMP 是用于输入和分发包括直播流媒体在内的丰富媒体的一 ...
- 通过新的 Azure 媒体服务资源管理器工具管理媒体工作流
Xavier Pouyat Azure 媒体服务高级项目经理 几个月前,一家广播公司找到了我,希望我向他们提供一种图形界面工具,好让他们使用 Azure媒体服务来上传.管理资产并对资产进行编 ...
- Azure媒体服务的Apple FairPlay流功能正式上线
在此我们高兴地宣布,Azure FairPlay Streaming服务已正式商用. FairPlay允许用户轻松构建解决方案,并可扩展到最新版本的Apple TV.Azure媒体服务可以结合现有的P ...
- Azure 媒体服务发布可靠的视频直播平台
Sudheer Sirivara Azure 媒体服务总监 两个月前,Azure 媒体服务发布了视频直播和内容保护产品的公共预览版.这一 Internet规模的直播解决方案已被十余家业界领先的国际广播 ...
- Azure 媒体服务支持 DASH 实时传送流
Kilroy Hughes Azure媒体服务数字媒体架构师 本文重点介绍 Azure 媒体服务支持的 DASH 实时传送流功能,同时阐述如何利用这些功能将实时和点播自适应流传送至 Web 浏览器 ...
- 【Azure媒体服务 Azure Media Service】Azure Media Service中Stream Endpoint 说明 (流式处理终结点)
Azure 媒体服务是一个基于云的媒体工作流平台,用于生成需要编码.打包.内容保护和直播活动广播的解决方案. 在视频的直播,点播方案中,媒体服务的架构主要由三部分构成: 推流端,把本地视频或直播内容推 ...
- Azure 媒体服务换新锁,更安全更方便,新钥匙请收好!
不知道有多少人已经把家里的门锁换成了数字化的指纹锁?沿用了几百上千年的传统门锁,在技术的帮助下无疑变得更方便,不用带钥匙,还能远程控制和操作,最重要的是,终于不用担心「衣果(luǒ)着」出门扔垃圾,风 ...
- Azure 媒体服务可将优质内容传输至 Apple TV
作为内容提供商,如果想要将优质内容传输到Apple TV,需要使用Apple FairPlay Streaming (FPS)技术. 但是这个技术的构建比较繁琐,基于此,Azure提供了FairPla ...
- 中国Azure媒体服务RESTAPI的Endpoint
Amber Zhao Thu, Feb 26 2015 4:09 AM 由于海外Azure和中国Azure有不同的domain,很多用户在使用媒体服务RESTAPI时,需要指定中国Azure媒体服务 ...
随机推荐
- 【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型 众所周知,DevOps流水线(DevOps pipeline)的本质是实现自动化工作流程,用于支持软件开发.测试和部署的连续集成.交付和部署(CI/CD)实践.它是DevOps方法论的核心 ...
- vue中$children的理解
官网介绍 $children $children 获取当前实例的直接子组件 .需要注意 $children 并不保证顺序,也不是响应式的.[特别重要] 如果你发现自己正在尝试使用 $children ...
- Docker系列教程01--简介
Docker 入门教程 作者: 阮一峰 日期: 2018年2月 9日 2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业. 但是,许多人并不清楚 Docker 到底是什么, ...
- Fabric-ca client端初始化过程源码分析
本文从Fabric-ca源码入手,以newRegisterCommand()函数为例,简单分析client启动时的过程.Fabric-ca源码可以从github.com下载,本文以v1.4.6为例进行 ...
- windwos10任务栏居中
如下操作 新建一个文件夹如图 然后出现这个重右往左一直拖然后拉出来就行了如图 拖不动或者没有的把这个关了-锁定任务栏 文字如何隐藏? 在这个文字旁边右击关闭标题即可 然后锁定任务栏就OK了
- Python Fire:自动生成命令行接口
命令行程序是平时写一些小工具时最常用的方式. 为了让命令行程序更加灵活,我们常常会设置一些参数,根据参数让程序执行不同的功能.这样就不用频繁的修改代码来执行不同的功能. 随着命令行程序功能的丰富,也就 ...
- 让 JuiceFS 帮你做好「异地备份」
家住北京西二旗的小张是一家互联网金融公司的运维工程师,金融行业的数据可是很值钱的,任何的损坏和丢失都不能容忍. 为此,小张选了北京品质最高的机房,买了品质最好的硬件,做了全面的数据备份容灾策略: 每 ...
- 开源免费绘制小工具drawio推荐
最近给客户做架构评估写报告时,需要画一些架构示例简图,需求很简单,没到非要用付费软件的程度. 同事推荐一款开源免费的绘制软件drawio,实际体验不错,可以满足我的使用需求. drawio官方网站: ...
- 小知识:解决EXP-00003的报错
客户有个需求:某用户程序(含exp导出任务)报错EXP-00003,这个错误并不会影响整个导出任务的结束,但由于是晚上的定时任务,该错误会触发夜间告警.客户想通过数据库层面来规避掉此错误. 事实上,这 ...
- [JVM]GC日志解读解析
GC日志解读解析 示例代码 package jvm.test1; import java.util.Random; import java.util.concurrent.TimeUnit; impo ...