如何修复 ffmpeg 中的"moov atom not found"错误?



好吧,我正在使用这个项目创建一个电报机器人,它接收.mp4文件的URL,将它们下载到服务器上并上传到电报。

问题

到目前为止一切正常,除了转换某些.mp4文件。

例如,如果我使用 https://sample-videos.com/中的示例.mp4视频。然后它工作正常并成功转换。

但是,如果我使用来自某个随机网站的视频,该视频也是简单的.mp4文件,则它不起作用并引发此错误:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1932420] 格式 mov,mp4,m4a,3gp,3g2,mj2 仅检测到低分 1,可能检测错误![mov,mp4,m4a,3gp,3g2,mj2 @ 0x1932420] moov atom 未找到data/720P_1500K_210306701.mp4:处理输入时发现无效数据

尝试在视频中使用ffprobe。如果您也遇到探头问题..可能是它已损坏。

您也可以尝试在编码之前执行此操作

ffmpeg -i input.mp4 -c copy input_first_clean_pass.mp4

,然后在input_first_clean_pass.mp4上启动命令

这实际上取决于处理上传的软件。moov atom 要么位于文件的开头,要么位于文件的末尾。如果软件只看文件的第一部分,而moov atom在最后,则在文件上传完成之前,它将不知道如何处理该文件。

在上传之前,您可以做的是将moov文件移动到视频的开头,更有可能的是,该软件仅在文件开头检查moov atom。使用 ffmpeg,命令为:

ffmpeg -i input -c:v copy -c:a copy -movflags faststart output.mp4

这会将其移动到文件的开头。不过,您需要为每个视频执行此操作。

最新更新