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

  • 截取I帧时输出数量与设置数量不一致
    可能产生的原因有以下两点:
    • 原视频的I帧数小于需要截取的I帧数,会导致输出I帧数量不够。
    • 原视频的GOP不固定(即I帧分布不均匀)。在没有设置interval(截图时序间隔)的情况下,会默认interval=视频总时长/截取数量,如果I帧并非均匀分布,可能某个interval中有两个I帧,某个interval中没有I帧,导致截取数量不对。
  • 提交截图任务如何区分同步异步

    只要设置了Interval和Num中的任何一个参数,就表示异步模式,跟是否设置piplineId无关。详情请参见SnapshotConfig参数详情

  • 指定截图时间点不是关键帧时如何处理

    获取截图时间附近最近的关键帧。如果是多张截图,截图时间附近找不到相应关键帧图片,则不返回相应时间点对应的图片,出现返回的图片张数与设定张数不一致情况。

  • 指定截图时间超过视频时长
    • 单张截图
      • 普通截图返回失败。
      • 关键帧截图根据定义,返回截取输入的截图时间附近最近的关键帧图片。
    • 多张截图

      Time+Interval*Num的截取点超过视频时长时,后续截图自动失效,截图完成时返回实际截取的个数。

  • m3u8文件截图

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

  • 序列截图返回的截图数量少于设置值

    对应时间点附近不存在关键帧图片;后续截图时间点已超出了输入文件总时长。

  • 图片大小设置
    1. 截图支持对输出图片进行宽高设置,详情请参见SnapshotConfig参数详情的width(宽)、height(高)参数
    2. width、height均不设置,则按照视频的分辨率作为图片大小。
    3. width、height只设置一个,则按照输入文件的宽高比进行缩放。
  • 截图任务报错排查
    截图任务错误码主要包含SnapshotTimeOut、InvalidParameter.ResourceNotFound、InvalidParameter.ResourceContentBad等,详情请参见提交截图作业
    1. 错误码获取方式

      提交截图任务失败可以通过查询截图任务接口来获取失败原因,详情请参见查询截图作业

    2. 主要错误常见原因
      1. InvalidParameter.ResourceNotFound,输入文件找不到,确保输入文件存在指定区域的对应bucket,特别注意各region之间的数据是相互独立的。
      2. SnapshotTimeOut,截图超时,此错误由同步截图返回,目前提交截图作业6s返回,如果同步截图超时情况频繁时,建议采用异步方式截图避免超时情况,不建议重试。
      3. InvalidParameter.ResourceContentBad,截图文件内容已经损坏,或者不符合规格导致截图失败。首先确保输入文件内容正常,其次保证截图配置是否符合规格,可按照本文中常见问题一一对照,特别注意截图时间点,关键帧等信息。