使用 avi 转 mp4 使用 ffmpeg 进行编码

dal*_*ale 50 command-line terminal centos ffmpeg conversion

使用什么命令行将 avi 转换为 mp4,但不破坏帧大小并使文件像原始大小一样小或大一点,与 mp4 到 avi 相同?每当我尝试将其转换为 2 GB 时

rba*_*ffy 74

根据原始文件的编码方式,可能无法保持文件大小。

此命令应在制作 mp4 文件时保持帧大小和速率不变:

ffmpeg -i infile.avi youroutput.mp4
Run Code Online (Sandbox Code Playgroud)

此命令将为您提供有关输入文件的信息 - 帧大小、使用的编解码器、比特率等:

ffmpeg -i infile.avi
Run Code Online (Sandbox Code Playgroud)

您还可以在生成输出时使用acodecvcodec选项。还要记住,mp4 和 avi 文件可以使用各种编解码器,并且您的里程可能会根据您选择的编解码器而有所不同。

  • 我认为最好使用 `ffprobe -i infile.avi` 而不是 `ffmpeg -i infile.avi` 来获取信息,因为后者会导致“必须指定至少一个输出文件”错误。 (8认同)

小智 15

据我所知,需要用 mp4 替换 avi-container (正式 - ISO 基本媒体文件格式 ISO/IEC 14496-12 )。

如果您运行以下命令:

ffmpeg -i input.avi -y output.mp4
Run Code Online (Sandbox Code Playgroud)

在这种情况下,ffmpeginput.avi 中重新编码基本流(更改容器和重新编码是ffmpeg的默认模式)。值得注意的是,重新编码可能会降低视觉和/或听觉质量。

因此,建议通过“ c:v copy c:a copy ”编解码器选项禁用重新编码:

ffmpeg -i input.avi -c:v copy -c:a copy -y output.mp4
Run Code Online (Sandbox Code Playgroud)

在上述情况下ffmpeg只是改变外壳(容器)


小智 8

我对将 avi 文件转换为 mp4 非常感兴趣。阅读您的帖子,我想起了这个 ffmpeg 命令:

ffmpeg -i input.avi -strict -2 output.mp4
Run Code Online (Sandbox Code Playgroud)

该命令-strict -2是 AAC 编解码器所必需的,该编解码器是实验性的,但如果添加这两个参数,则可以工作(libaac)。默认情况下,输出文件是高质量的。