如何修复ffmpeg中的“找不到moov atom”错误?

Posted

技术标签:

【中文标题】如何修复ffmpeg中的“找不到moov atom”错误?【英文标题】:How to fix "moov atom not found" error in ffmpeg? 【发布时间】:2019-09-17 15:54:46 【问题描述】:

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

到目前为止一切正常,除了转换某些 .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 not found data/720P_1500K_210306701.mp4:处理输入时发现无效数据

【问题讨论】:

分享失败的 mp4。 这可能是一个尚未完全上传的视频(例如直播)。希望 How to add a MOOV atom in a mp4 video file 可以提供帮助。 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于如何修复ffmpeg中的“找不到moov atom”错误?的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg如何批量切割视频尾部4秒?

修复FFMPEG 复用 PATPMT发送间隔小于25ms的错误

与 ffmpeg 的音视频同步

FFmpeg本地任意文件读取漏洞 / FFmpeg Local arbitrary file read vulnerability

如何告诉ffmpeg按顺序遍历目录中的所有文件

如何使用 ffmpeg 对 H.264 中的视频进行编码?