我们目前正在使用 Azure 媒体服务上传视频。当作业在媒体服务中运行时,它会创建一个缩略图。我可以从 Azure 门户导航到它。
当作业完成时,我们使用事件网格并拥有处理事件的代码。我们收到一个 JSONObject,其形式如下
outputs {[
{
"@odata.type": "#Microsoft.Media.JobOutputAsset",
"assetName": "output-06982218-ecb1-4680-8cd4-c6800d991fba",
"error": null,
"label": "BuiltInStandardEncoderPreset_0",
"progress": 100,
"state": "Finished"
}
]}
如果我导航到 Azure 门户中的该输出 Assets ,它会显示
存储容器:asset-a5536b5c-3024-4162-ad78-81f5448d3f68
里面是缩略图文件
我的问题给出了输出-06982218-ecb1-4680-8cd4-c6800d991fba
如何将 URL 通用到
asset-a5536b5c-3024-4162-ad78-81f5448d3f68/Thumbnail000001.jpg
哪个是缩略图文件?
我们希望将其存储在数据库中以供以后使用。
最佳答案
AMS 中的每个 Assets 都有一个容器名称属性。
您可以使用它来查找存储 Assets 内容的容器,包括 MP4 文件、 list 、元数据以及任何输出缩略图 JPG 或 PNG 或 VTT 文件。
要访问它,只需使用存储客户端 SDK。我们的示例存储库中有许多使用存储客户端 SDK 下载内容的示例。
https://learn.microsoft.com/en-us/rest/api/media/assets/get#asset
查看 Node/Typescript,了解使用存储客户端 SDK 下载内容的各种示例。 https://github.com/Azure-Samples/media-services-v3-node-tutorials/tree/main/VideoEncoding/Encoding_Sprite_Thumbnail
如果您只需要获取该文件的 URL,您还可以使用 GetContainerSAS 方法在 Assets 上创建 SAS URL,然后将所需文件的名称附加到该 SAS URL 并使用该 URL 直接下载。 https://learn.microsoft.com/en-us/rest/api/media/assets/list-container-sas 请注意,GetContainerSAS 将为您提供容器的 SAS URL。您仍然需要使用某些 URL 路径库将 .jpg 或 .png 图像的名称附加到该 URL 的末尾,但保留带有 token 的查询字符串。
更新:我还创建了一个快速 Typescript/Node.js 示例,以展示如何使用您自己的容器名称创建 Assets ,以及如何取回它。 https://github.com/Azure-Samples/media-services-v3-node-tutorials/blob/main/Assets/get-container-from-asset.ts
更新 2:在此处添加了另一个 .NET 示例 - https://github.com/Azure-Samples/media-services-v3-dotnet/blob/main/Assets/Program.cs
关于Azure媒体服务获取缩略图文件URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71665395/