无法从Azure媒体存储生成JPEG缩略图,XML配置报错求助
解决Azure Media Services生成缩略图时的XML无效错误
你遇到的XML无效问题主要来自两个配置格式错误,再加上代码里的一个变量名小失误,我来逐一帮你排查:
1. XML配置中的Size属性格式错误
Azure Media Video Thumbnails的Size属性不支持30%,*这种写法。正确的格式规则是:
- 只指定宽度百分比(高度自动按比例缩放):
"30%" - 只指定高度百分比:
"*,30%" - 指定具体像素尺寸:
"640,480"(宽,高)
你的写法30%,*不符合规范,会被判定为无效XML。
2. Time节点的Value格式错误
Azure媒体服务要求时间值使用ISO 8601时长格式,而不是普通的0:3:19时分秒格式。对应你要的3分19秒,应该写成"PT3M19S"(P代表周期,T代表时间部分,M是分钟,S是秒)。
3. 代码中的变量名误用
你读取XML配置到了ThumbnailConfig变量,但创建任务时传入的是configuration——如果没有定义这个变量的话,这会导致编译错误或者传入空值/错误值,间接引发XML无效的提示。
修正后的XML配置文件
<?xml version="1.0" encoding="utf-8"?> <Thumbnail Size="30%" Type="Jpeg" Filename="abc_1.jpg"> <Time Value="PT3M19S"/> </Thumbnail>
修正后的C#代码片段
IAsset asset = CreateAssetAndUploadSingleFile(inputMediaFilePath, "My Video Thumbnail Input Asset", AssetCreationOptions.None); // 声明新作业 IJob job = _context.Jobs.Create("My Video Thumbnail Job"); // 获取Azure Media Video Thumbnails引用 string MediaProcessorName = "Azure Media Video Thumbnails"; var processor = GetLatestMediaProcessorByName(MediaProcessorName); var ThumbnailConfig = File.ReadAllText("Thumbnail_Configuration.xml"); // 创建包含编码详情的任务——注意这里传入的是ThumbnailConfig,不是configuration ITask task = job.Tasks.AddNew("My Video Thumbnail Task", processor, ThumbnailConfig, TaskOptions.None);
做完这些修改后,重新运行作业应该就能正常生成指定时间点的缩略图了。
内容的提问来源于stack exchange,提问作者hilda_sonica_vish
相关产品推荐
相关产品推荐

