谷歌云Transcoder生成SpriteSheet时出现editList startTimeOffset错误如何解决
问题原因
- 谷歌云Transcoder服务对editList配置的
startTimeOffset参数有严格校验规则:该参数值必须严格小于当前edit atom关联的所有输入文件的最小时长,等于或超过都会触发校验失败。 - 你的报错信息明确显示,服务识别到你关联的输入WebM文件时长为0s,你配置的
startTimeOffset: "0s"不满足小于0s的要求,因此任务校验不通过。 - 输入文件时长被识别为0s通常有两个常见诱因:
- 存放在GCS的WebM文件本身损坏、头信息缺失,服务无法正常解析出音视频时长
- 文件未完全上传到GCS就提交了转码任务,服务读取到的是不完整的空文件
解决方法
1. 校验输入文件有效性
先确认输入文件本身无问题:
- 将
gs://input_video.webm下载到本地,使用播放器或FFmpeg打开验证是否可正常播放 - 执行FFmpeg命令
ffmpeg -i input_video.webm查看输出的Duration字段,确认文件时长大于0 - 若文件损坏或不完整,重新上传完整可播放的WebM文件到对应GCS路径
2. 调整转码配置
确认输入文件正常后,调整作业配置,删除两处不必要的startTimeOffset显式声明(不声明时默认就是从0秒开始处理,不会触发等于校验):
调整editList配置
删除editList中的startTimeOffset: "0s"字段,调整后示例:
"editList": [ { "key": "atom0", "inputs": [ "input0" ] } ]
调整spriteSheets配置
同时删除两个雪碧图配置中的startTimeOffset: "0s"字段,调整后示例:
"spriteSheets": [ { "format": "jpeg", "filePrefix": "small-sprite-sheet", "spriteWidthPixels": 64, "spriteHeightPixels": 32, "interval": "7s", "quality": 100 }, { "format": "jpeg", "filePrefix": "large-sprite-sheet", "spriteWidthPixels": 128, "spriteHeightPixels": 72, "interval": "7s", "quality": 100 } ]
3. 重新提交任务
使用调整后的配置重新提交转码任务即可正常运行。
内容的提问来源于stack exchange,提问作者TJ Liu
相关产品推荐
相关产品推荐

