我有一个网站,用户可以在其中上传要编码的视频,并可以在azure媒体播放器中观看。上载的某些视频没有Azure媒体播放器无法播放的音轨。如何用这些视频编码空的音轨?我正在使用REST API的v3。
我当前的转换代码是:
private async Task<string> CreateTransformAsync(string transform)
{
JObject body = new JObject(
new JProperty("properties",
new JObject(
new JProperty("description", "Basic Transform using an Adaptive Streaming encoding preset from the libray of built-in Standard Encoder presets"),
new JProperty("outputs",
new JArray(
new JObject(
new JProperty("onError", "StopProcessingJob"),
new JProperty("relativePriority", "Normal"),
new JProperty("preset",
new JObject(
new JProperty("@odata.type", "#Microsoft.Media.BuiltInStandardEncoderPreset"),
new JProperty("presetName", "H264MultipleBitrate720p")
)
)
)
)
)
)
)
);
var jsonBody = new StringContent(body.ToString(), Encoding.UTF8, "application/json");
HttpResponseMessage responseMsg = await _httpClient.PutAsync($"subscriptions/{_config.Value.SubscriptionId}/resourceGroups/{_config.Value.ResourceGroup}/providers/Microsoft.Media/mediaServices/{_config.Value.MediaAccountName}/transforms/{transform}/?api-version={_config.Value.ApiVersion}", jsonBody);
string responseContent = await responseMsg.Content.ReadAsStringAsync();
var response = JObject.Parse(responseContent);
if (response["error"] == null)
{
return response["name"].ToString();
} else
{
throw new Exception(response["error"].ToString());
}
}
更新:
在仔细阅读文档后,我对此有了进一步的了解:https://docs.microsoft.com/en-us/azure/media-services/latest/custom-preset-rest-howto#define-a-custom-preset
我现在定义一个自定义预设,将其读入并将其发送到正文中。现在的问题是,我找不到类似于“ API”的v2中的“ condition”:“ InsertSilenceIfNoAudio”的类似选项。我在这里打开了一个关于它的github问题:https://github.com/MicrosoftDocs/azure-docs/issues/28133
答案 0 :(得分:1)
您的目标编码设置是什么?您是否需要自定义预设? 如果不是,并且您只需要标准的自适应流媒体配置文件预设,则可以使用 AdaptiveStreaming preset.处理插入静音。
答案 1 :(得分:1)
它尚未最终宣布,但是在我们为项目进行测试时, Azure Media Player从版本2.3.0(2019年4月30日)开始完全支持仅视频内容。
正式在功能列表中提到该功能已经实现(“仅视频”功能,注释为“ AzureHtml5JS中支持”,here),在2.3.0版本的更改列表中说“新增了对DASH的纯视频资产的支持”(here),但是我们也亲自测试了SMOOTH和HLS-没有问题,因此从2.3.0版开始,纯视频资产开始播放时没有任何问题。< / p>
与此同时,Known Issues中仍然提到了该问题:“仅音频或视频的资产将无法通过AzureHtml5JS技术播放。”但我想它们只是没有更新文档。另一种选择,可能是他们没有完全测试它,但是正如我从内部测试中所说的那样,它似乎完全可以工作。