截图常见问题

本文说明了截图中的常见问题和对应的解决方法。

截图失败常见报错

截图任务错误码主要包含SnapshotTimeOut、InvalidParameter.ResourceNotFound、InvalidParameter.ResourceContentBad。错误码获取方式提交截图任务失败可以通过查询截图任务接口来获取失败原因,详情请参见查询截图作业

SnapshotTimeOut

同步截图任务超时。目前同步截图作业会在5s内返回,如果输入文件过大可能会超时。当超时频繁,建议采用异步方式截图。

InvalidParameter.ResourceNotFound

找不到输入文件,导致提交不成功或截图任务失败。请根据以下原因进行排查:

原因

解决方案

输入文件在提交任务时还没有完成上传,或已经被删除。

请确保文件已经上传后再尝试提交任务。

输入文件的OSS路径拼写错误。

请检查拼写。

输入文件的OSS路径未经过URL Encoding正确转换。

请参考URL Encoding说明设置。

输入文件的OSS Bucket与MPS服务不在同一地域。

请更换地域。

输入文件的OSS存储类型为冷归档存深度冷归档存储

冷存数据需要先解冻取回后才可被访问处理。

输入文件的OSS存储类型为归档存储,且未开启数据直读或解冻取回。

归档存储需要开启OSS数据直读或先解冻取回才可被访问处理。

输入文件的OSS Bucket开启了防盗链。

工作流自动触发需要在输入媒体Bucket上配置referer,其他提交方式需要在input增加Referer参数。

InvalidParameter.ResourceContentBad

参数设置冲突或者输入文件已损坏,导致提交不成功或截图任务失败。请根据以下步骤进行排查:

  1. 请先确认输入文件是否正常。

  2. 请检查截图参数是否配置正确,特别注意截图时间点Time,关键帧IFrameType、Output等信息。

  3. 如上述方法无法解决问题,请您提供区域+RequestId联系阿里云排查。

提交M3U8文件同步截图失败

M3U8文件同步截图必须保证M3U8索引中的TS路径与M3U8在相同的路径下,异步无要求。

提交单张截图失败,指定时间超过视频时长

错误码:InvalidParameter.ResourceContentBad

错误描述:The resource operated InputFile is bad

原因

解决方案

提交单张截图任务,截取普通帧,设置time大于视频时长,因为视频太短,所以截不到图片,任务失败。

修改time为小于视频时长的值。或者改为截取关键帧(FrameType=intra),当time超过视频时长时,会返回时间点附近最近的关键帧图片。

提交任务不成功,提示OutputFile Object参数问题

错误码:InvalidParameter.ResourceContentBad

错误描述:The format of parameter "SnapshotConfig:OutputFile:Object" is invalid

原因

解决方案

提交多张截图任务(Num>1),但OutputFile的Object未添加{Count}占位符。参数设置错误导致提交不成功。

需要将OutputFile的Object中添加{Count},避免多张截图路径相同而被覆盖。

提交WebVTT任务,将Format设置为vtt,但OutputFile的Object后缀没有设置为.vtt。参数设置错误导致提交不成功。

需要将OutputFile的Object后缀设置为.vtt,请检查参数配置。

提交任务不成功,提示TileOutputFile Object参数问题

错误码:InvalidParameter.ResourceContentBad

错误描述:The format of parameter "SnapshotConfig:TileOutputFile:Object" is invalid

原因

解决方案

提交雪碧图任务,但TileOutputFile的Object未添加{TileCount}占位符。参数设置错误导致提交不成功。

需要将TileOutputFile的Object中添加{TileCount},避免多张雪碧图路径相同而被覆盖。

截图设置疑问

提交截图任务如何区分同步异步

只要在SnapshotConfig中指定了Interval和Num的任何一个参数,则表示使用异步模式。跟是否设置了piplineId无关。

截图设置时间点超过了视频时长会如何

  • 单张截图,设置time大于视频时长:

    • 普通帧截图:任务失败。"InvalidParameter.ResourceContentBad",The resource operated InputFile is bad

    • 关键帧截图:任务成功。返回时间点附近最近的关键帧图片

  • 多张截图,设置Time+Interval*Num>视频时长,任务成功。视频时长内,正常截图。截取点超过视频时长的,不截图。截图完成时返回实际截取的个数

截图结果与预期不符

截图数量与设置不一致

请根据以下原因进行排查:

原因

解决方案

需要生成雪碧图,但雪碧图路径与单张图片的输出路径使用同一bucket的同名路径,导致图片路径覆盖。

OutputFile和TileOutputFile请使用不同bucket或区分路径命名。

使用了采样截图,指定了截图数量和间隔时长。但因为视频较短,导致截取数量不够。

结果正常,无需解决。

截取单张图片时开启了首帧黑屏检测。但因为首帧是黑屏被过滤,导致没截到图片。

如果业务需要单张截图不过滤黑帧,可以通过调整黑屏阈值(BlackLevel、PixelBlackThreshold)来实现。

设置了截取关键帧(即I帧,FrameType=intra)。但因为:

  • 原视频的I帧数小于需要截取的I帧数,导致截取数量不够。

  • 原视频的GOP不固定(即I帧分布不均匀)。在使用平均截图时,截图时间间隔=视频总时长/截取数量,如果I帧并非均匀分布,可能某个间隔中有两个I帧,某个间隔中没有I帧,导致截取数量不够。

  • 截图时间附近找不到相应关键帧图片,则不返回相应时间点对应的图片,导致截取数量不够。

如果要精确时间点截图,请改为普通帧(FrameType=normal)。

截图时间点与设置不一致

原因

解决方案

设置了截取关键帧(即I帧,FrameType=intra)。视频中关键帧是间隔一段时间才会出现,所以截图时间点不精确,会在设置的时间点附近寻找相应的关键帧。

如果要精确时间点截图,请改为普通帧(FrameType=normal)。

截图模糊

原因

解决方案

设置了截取普通帧(即P帧,FrameType=normal)。普通帧的画质不如关键帧。

如果对画质有要求,请改为关键帧(FrameType=intra)。

截图变形、比例与设置不一致

请根据以下原因进行排查:

原因

解决方案

同时设置了截图的宽Width、高Height,但与视频比例不同,导致图片变形。

建议只设置单边,另一边会按照视频的分辨率保持比例不变,避免图像变形。

需要生成雪碧图,同时设置了Cellwidth、Cellheight但与图片比例不同,导致雪碧图中的小图变形。

建议只设置单边,另一边会按照视频的分辨率保持比例不变,避免图像变形。

输入视频的dar/sar特性兼容问题。

请您提供uid+区域+jobid联系阿里云排查。

截图旋转,输入竖屏视频但截图是横屏

输入的MP4竖屏视频带有旋转标识,所以输出截图是横屏图像。常见于移动设备拍摄的视频。

如何判断视频是否带有旋转标识:

请调用SubmitMediaInfoJob - 提交媒体信息作业,查看VideoStream的Rotate信息,当rotation取值为-90、90时,代表视频会向左向右旋状90度,从而导致横竖方向改变。

同步截图任务未生成雪碧图或vtt文件

提交同步单张截图任务时设置了雪碧图、vtt参数。同步截图仅能截一张图片,不支持输出雪碧图或vtt。请使用异步任务。