ffmpeg 从 avi 文件生成无法播放的 MP4 文件

Posted

技术标签:

【中文标题】ffmpeg 从 avi 文件生成无法播放的 MP4 文件【英文标题】:ffmpeg Produces unplayable MP4 File From avi files 【发布时间】:2021-10-21 19:52:15 【问题描述】:

手上有很多.avi 文件,我想将它们转换为.mp4。将我在互联网上找到的所有内容拼凑在一起,我最终得到了这样的结果:

ffmpeg -i something.avi -c:v copy -c:a copy something.mp4

我得到的东西可以在 VLC 播放器上播放,但是,当然,它会播放我通过它播放的任何东西。但是,我无法使用 Finder 中的 QuickLook 或 QuickTime 播放器播放它。

在某些情况下,我会收到视频,但没有声音。在其他一些情况下,我会收到乱码视频。

我猜测.avi文件中的音频或视频编解码器与MacOS不兼容,上面的copy指令不合适。在那种情况下,我想我实际上需要重新编码音频或视频。

如果这听起来不连贯,我承认我对视频文件知之甚少。

尝试制作在 MacOS 上原生运行的 MP4 的最佳设置是什么?

【问题讨论】:

ottverse.com/ffmpeg-convert-avi-to-mp4-lossless 复制并粘贴 ffmpeg 日志中的所有文本。没有这些信息,我们无法提供答案。 【参考方案1】:

“尝试制作在 MacOS 上原生运行的 MP4 的最佳设置是什么?”

检查此useful guide。 您可以尝试以下命令作为起点(音轨将/应该被自动检测和转换):

ffmpeg -i something.avi -c:v libx264 -crf 22 -pix_fmt yuv420p something.mp4

【讨论】:

对不起,我还没有回复这个。我还在测试它。我确实发现生成的文件大约是原始文件大小的 2/3。使用您提供的链接,我正在尝试这个:-crf 18,它给我的尺寸与原始尺寸大致相同。这对你有意义吗?

以上是关于ffmpeg 从 avi 文件生成无法播放的 MP4 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 php 中通过 ffmpeg 命令将 avi 文件转换为 mp4 文件

ffmpeg将avi转为flv之后质量变得非常差但是文件却的变得非常大了,这是为啥啊

使用 OpenCV 和 ffmpeg 编写 MP4 文件

ffmpeg 怎么把h264文件转成MP4

如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)

FFMPEG 转换的 mp4 文件无法在 firefox 和 chrome 中播放