我正在尝试使用 Azure 媒体服务上的视频中的图像缩略图。我不明白缩略图是否是自动制作的如果是这样 - 那么它的 URI 是什么。
文档讨论了 AssetFile 中的“缩略图集合”-但我找不到更多信息。
有任何想法吗?
谢谢
我正在尝试使用 Azure 媒体服务上的视频中的图像缩略图。我不明白缩略图是否是自动制作的如果是这样 - 那么它的 URI 是什么。
文档讨论了 AssetFile 中的“缩略图集合”-但我找不到更多信息。
有任何想法吗?
谢谢
这是将缩略图任务添加到编码作业的示例代码
ITask task = job.Tasks.AddNew("My thumbnail task",
processor,
"Thumbnails",
TaskOptions.None);
您可以通过使用 xml 预设而不是名为 pereset 的系统来控制缩略图任务参数。我从 sdk github repo 文件Jobtests.cs粘贴它
string presetXml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<Thumbnail Size=""80,60"" Type=""Jpeg"" Filename=""{OriginalFilename}_{ThumbnailTime}.{DefaultExtension}"">
<Time Value=""0:0:0""/>
<Time Value=""0:0:3"" Step=""0:0:0.25"" Stop=""0:0:10""/>
</Thumbnail>";
IJob job = CreateAndSubmitOneTaskJob(_mediaContext, name, mediaProcessor, presetXml, asset, TaskOptions.None);
var task = job.Tasks.First();
var asset = task.OutputAssets.First();
var files = asset.AssetFiles.ToList();
运行使用缩略图预设的 ShouldFinishJobWithSuccessWhenPresetISUTF8() 测试,您会发现该作业生成 1 个输出资产,其中包含大约 30 个文件。要下载这些文件,您只需调用 Download 或 DownloadAsync。
files[0].Download()
如果您需要获取所选文件的 url,您可以执行以下代码:
var accessPolicy = mediaContext.AccessPolicies.Create("12HoursRead", TimeSpan.FromHours(12), AccessPermissions.Read);
//Creating read-only access url which will be available for 12 hours
var locator = mediaContext.Locators.CreateSasLocator(asset, accessPolicy);
//Getting url for first file in collection
UriBuilder uriBuilder = new UriBuilder(locator.BaseUri);
uriBuilder.Path += String.Concat("/", files[0].Name);
请注意,所有 Azure 媒体资产文件都存储在 Azure 存储中。如果您有大量网站,最好从存储中下载缩略图并通过 CDN 发布它们。