AWS Elemental MediaConvert转码iOS视频失败,求解决方案
我们近期将视频转码方案从Telestream Flip迁移至AWS Elemental MediaConvert,多数功能运行正常,但通过桌面浏览器上传iOS设备拍摄的视频时遇到问题。
操作流程:
- 使用iOS设备的相机或屏幕录制功能拍摄视频
- 通过Airdrop、iCloud、照片应用或其他方式将视频传输至MacBook
- 通过Web应用上传该视频
使用MediaConvert处理上传后的.mov或.MP4格式文件时,出现如下错误:
3404: '<https://SOME-BUCKET.s3-eu-west-1.amazonaws.com/2023/09/21/10/46/08/12345-1234-1234-1234-1a2a3a4a/some-video.mov?REMOVED=true>' not found.
已确认文件确实存在于指定S3存储桶中,且将.MP4文件扩展名改为小写.mp4后,上传和转码可成功完成;但修改.mov文件的文件名无法解决问题。
可能的解决方向
核对S3对象路径的大小写一致性
AWS S3默认大小写敏感,即使控制台显示文件存在,若MediaConvert请求的路径(含目录层级、文件名)与实际S3对象键(Key)大小写不匹配,就会返回404。建议通过S3控制台查看对象的完整键,对比错误信息中的路径,确认完全一致。排查预签名URL与MediaConvert权限
错误中的URL带有?REMOVED=true参数,疑似预签名URL。需确认该URL是否未过期、权限配置正确,同时检查MediaConvert所用IAM角色是否拥有目标S3对象的s3:GetObject权限,确保权限覆盖对象所在的完整路径。验证iOS视频的编码兼容性
iOS拍摄的MOV多为H.264/H.265编码,但MediaConvert可能对部分非标准封装、编码参数(如自定义时间码、特殊元数据)存在兼容问题。可通过ffmpeg查看视频详细信息:
ffmpeg -i some-video.mov
若发现异常轨道或参数,可尝试上传前预处理视频,或在MediaConvert作业中调整输入设置(如指定解码器、忽略错误轨道)。
检查Web上传的文件完整性
确认Web应用上传至S3的文件未损坏、上传完整。可下载S3中的MOV文件本地播放验证,或对比本地文件与S3对象的MD5哈希值是否一致。调整MediaConvert作业的输入配置
检查MediaConvert作业的输入设置,确认是否正确指定了容器类型,或开启了自动检测输入格式的选项。手动指定容器类型有时能解决兼容性问题。
内容的提问来源于stack exchange,提问作者davidt

