【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媒体服务 ...
随机推荐
- Linux 一行命令 仅显示某一个网卡的ip地址
最简答的方法 1. 先使用 ifconfig 查看网卡的设备名 2. 然后输入命令 ifconfig ens192 |grep 'inet ' |cut -d " " -f 10命 ...
- 依据HTML标准再探Javascript事件循环及其与浏览器渲染的关系
Javascript的一些基础概念 JavaScript执行引擎在宿主环境中是单线程的,这意味着在同一时间内只能执行一个任务.在Javascript运行期间,引擎会创建和维护相应的堆(heap)和栈( ...
- P9110 [PA2020] Samochody dostawcze
题目简述 有 \(n\) 个点,这些点分为两种类型.第一种,点在 \((x,0)\) 的位置.这些点从 \(t_i\) 的时刻开始向北走.第二种,点在 \((0,y)\) 的位置.这些点从 \(t_i ...
- 手撕Vue-实现将数据代理到Vue实例
前言 经过上一篇文章的学习,完成了 v-on 指令的实现,接下来我们来实现将数据代理到 Vue 实例上. 为什么要完成这个功能呢?因为我们在使用 Vue 的时候,可以直接通过 this.xxx 的方式 ...
- 4.4 EAT Hook 挂钩技术
EAT(Export Address Table)用于修改动态链接库(DLL)中导出函数的调用.与IAT Hook不同,EAT Hook是在DLL自身中进行钩子操作,而不是修改应用程序的导入表.它的原 ...
- 4.9 C++ Boost 命令行解析库
命令行解析库是一种用于简化处理命令行参数的工具,它可以帮助开发者更方便地解析命令行参数并提供适当的帮助信息.C++语言中,常用的命令行解析库有许多,通过本文的学习,读者可以了解不同的命令行解析库和它们 ...
- Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--添加文本
项目地址: Pdfium.Net:https://github.com/1000374/Pdfium.Net PdfiumViewer:https://github.com/1000374/Pdfiu ...
- DjangoURL反向解析
#添加书籍 url(r'^add_book/', views.add_book,name='abook'), #name='abook' 别名 # 删除书籍 url(r'^delete_book/(\ ...
- System V|共享内存基本通信框架搭建|【超详细的代码解释和注释】
前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm=1001.2014. ...
- PostgreSQL-查询每个表的大小
1.查询数据库中单个表的大小(不包含索引) select pg_size_pretty(pg_relation_size('表名')); 2.查询所有表的大小并排序(包含索引) SELECT tabl ...