CentOS更新ffmpeg到3.4.9后无法将MOV转换为MP4问题求助
问题根因定位
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x831ec0] moov atom not found
/home/user/api/private_uploads/chat/3d721e80-3a70-11ec-a302-b7cf4598d93b.mov:
Invalid data found when processing input
该报错和ffmpeg版本没有关联,核心原因是你要转码的源MOV文件本身损坏/不完整。moov atom是MOV/MP4格式的核心元数据块,存储了视频的时长、轨道信息、帧索引等关键数据,通常在文件录制/生成完成时才会写入到文件头或者文件尾,如果文件生成过程被中断、上传/传输过程丢包、存储时出现IO错误,都会导致moov块丢失,ffmpeg读不到元数据就会报上述错误。
这也是你回退ffmpeg版本、重装依赖库都无法解决问题的核心原因。
排查与修复方案
- 第一步先验证源文件有效性:执行命令
ffprobe /home/user/api/private_uploads/chat/3d721e80-3a70-11ec-a302-b7cf4598d93b.mov,如果ffprobe同样无法读出视频的分辨率、时长、编码等基础信息,即可确认源文件损坏 - 第二步排查文件来源:如果该文件是用户上传的,校验上传后的文件大小和用户本地源文件大小是否一致,确认是否存在上传中断、上传逻辑错误导致的文件不完整;如果是服务端生成的MOV文件,检查生成流程是否存在进程提前被杀死、磁盘空间不足等异常
- 第三步尝试损坏文件修复:如果无法重新获取完整的源文件,可以执行命令
ffmpeg -err_detect ignore_err -i /home/user/api/private_uploads/chat/3d721e80-3a70-11ec-a302-b7cf4598d93b.mov -c:v copy -c:a copy output.mp4尝试忽略读取错误强制提取可解码的视频片段,若文件损坏程度过高该方案可能失效
内容的提问来源于stack exchange,提问作者MMMWeirdo
相关产品推荐
相关产品推荐

