创建 Azure 媒体服务 v3 作业时的 presetOverride
presetOverride when creating Azure Media Services v3 Job
通过 REST API 创建 Azure 媒体服务作业时,我无法按照文档中的定义在 JobOutputAsset
上设置 presetOverrides
属性:https://docs.microsoft.com/en-us/rest/api/media/jobs/create#joboutputasset
我的请求正文是:
{
"properties": {
"input": {
"@odata.type": "#Microsoft.Media.JobInputAsset",
"assetName": "inputAsset"
},
"outputs": [
{
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "outputAsset",
"label": "en-US",
"presetOverride": {
"@odata.type": "#Microsoft.Media.AudioAnalyzerPreset",
"audioLanguage": "en-US",
"mode": "Basic"
}
}
],
"priority" : "Normal"
}
}
抛出的错误信息是:
{
"error": {
"code": "InvalidResource",
"message": "The property 'presetOverride' does not exist on type 'Microsoft.Media.JobOutputAsset'. Make sure to only use property names that are defined by the type."
}
}
删除 presetOverride
数据时,一切正常。官方文档明确指出 Microsoft.Media.JobOutputAsset
确实有 presetOverride
属性。我做错了什么?
Rene 有几个问题。我不建议直接对任何 Azure 服务使用原始 REST API。原因是有很多内置的重试场景和重试策略已经融入客户端 SDK。我们有许多客户尝试推出他们自己的 REST API 库,但 运行 在生产中遇到了很多问题,因为他们没有阅读如何处理和编写他们自己的自定义重试策略代码。
除非您真的很熟悉滚动自己的重试策略以及 Azure 资源管理网关的工作原理,否则请尽量避免使用它并只使用官方客户端 SDK - 请参阅此处 - https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#general-rest-and-retry-guidelines
现在,回答您的具体问题 - 尝试在 .NET 中使用我的示例,看看它是否能回答您的问题。
https://github.com/Azure-Samples/media-services-v3-dotnet/blob/3ab85647cbadd2b868aadf175afdede67b40b2fd/AudioAnalytics/AudioAnalyzer/Program.cs#L129
我也可以在 Node.js/Typescript 中提供一个工作示例,如果你愿意的话。它使用我们 Javascript SDK 的最新 10.0.0 版本。
我今天正在处理这个 repo 中的示例 - https://github.com/Azure-Samples/media-services-v3-node-tutorials
更新:在 Typescript 示例中添加了基本音频。
https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/AudioAnalytics/index.ts
显示如何使用每个作业的预设覆盖。
在与 Azure 媒体服务 REST API 通信时,select 正确的 API 版本很重要 API。
在这种情况下,使用了 Azure 媒体服务邮递员示例中的 api 版本 2020-05-01
。但是 presetOverride
选项只能从版本 2021-06-01
.
开始使用
将 api-version=2021-06-01
设置为 GET 参数可启用预设覆盖。
通过 REST API 创建 Azure 媒体服务作业时,我无法按照文档中的定义在 JobOutputAsset
上设置 presetOverrides
属性:https://docs.microsoft.com/en-us/rest/api/media/jobs/create#joboutputasset
我的请求正文是:
{
"properties": {
"input": {
"@odata.type": "#Microsoft.Media.JobInputAsset",
"assetName": "inputAsset"
},
"outputs": [
{
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "outputAsset",
"label": "en-US",
"presetOverride": {
"@odata.type": "#Microsoft.Media.AudioAnalyzerPreset",
"audioLanguage": "en-US",
"mode": "Basic"
}
}
],
"priority" : "Normal"
}
}
抛出的错误信息是:
{
"error": {
"code": "InvalidResource",
"message": "The property 'presetOverride' does not exist on type 'Microsoft.Media.JobOutputAsset'. Make sure to only use property names that are defined by the type."
}
}
删除 presetOverride
数据时,一切正常。官方文档明确指出 Microsoft.Media.JobOutputAsset
确实有 presetOverride
属性。我做错了什么?
Rene 有几个问题。我不建议直接对任何 Azure 服务使用原始 REST API。原因是有很多内置的重试场景和重试策略已经融入客户端 SDK。我们有许多客户尝试推出他们自己的 REST API 库,但 运行 在生产中遇到了很多问题,因为他们没有阅读如何处理和编写他们自己的自定义重试策略代码。 除非您真的很熟悉滚动自己的重试策略以及 Azure 资源管理网关的工作原理,否则请尽量避免使用它并只使用官方客户端 SDK - 请参阅此处 - https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#general-rest-and-retry-guidelines
现在,回答您的具体问题 - 尝试在 .NET 中使用我的示例,看看它是否能回答您的问题。 https://github.com/Azure-Samples/media-services-v3-dotnet/blob/3ab85647cbadd2b868aadf175afdede67b40b2fd/AudioAnalytics/AudioAnalyzer/Program.cs#L129
我也可以在 Node.js/Typescript 中提供一个工作示例,如果你愿意的话。它使用我们 Javascript SDK 的最新 10.0.0 版本。 我今天正在处理这个 repo 中的示例 - https://github.com/Azure-Samples/media-services-v3-node-tutorials
更新:在 Typescript 示例中添加了基本音频。 https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/AudioAnalytics/index.ts
显示如何使用每个作业的预设覆盖。
在与 Azure 媒体服务 REST API 通信时,select 正确的 API 版本很重要 API。
在这种情况下,使用了 Azure 媒体服务邮递员示例中的 api 版本 2020-05-01
。但是 presetOverride
选项只能从版本 2021-06-01
.
将 api-version=2021-06-01
设置为 GET 参数可启用预设覆盖。