本文将指导您如何使用FFmpeg轻松将AVI视频转换为MP4格式,并探讨是否需要重新编码。文章还包含FFmpeg在Ubuntu、Mac和Windows上的安装方法,以及如何实现AVI无损转换为MP4。适合视频处理爱好者学习和参考。

文章标题:轻松高效:使用FFmpeg将AVI转换为MP4的方法

文章内容:

Easy-Tech#021#

在这篇文章中,我们将学习如何利用FFmpeg将视频从AVI格式转换为MP4格式,同时探讨在转换过程中是否需要重新编码。此外,我们还将介绍FFmpeg在Ubuntu、Mac和Windows上的安装方法,并展示如何实现AVI无损转换为MP4。

视频爱好者常常在网上询问:“如何将AVI转换为MP4?”尽管这个问题听起来有些复杂,但使用FFmpeg进行转换其实非常简单明了。

FFmpeg是世界上最重要、最流行的视频处理和压缩库之一。许多高效的商业编码器都采用了FFmpeg,而Handbrake、VLC播放器等软件也获得了FFmpeg的支持。

本文将带您了解格式转换的基本原理,并对Codecs和Formats有一个简单的认识,然后探讨在格式转换过程中是否需要重新编码视频。

让我们直接进入命令行部分。

如果您急需将AVI转换为MP4,只需运行以下FFmpeg命令,这对大多数用例都有效。

“`bash
ffmpeg -i input_filename.avi -c:v copy -c:a copy -y output_filename.mp4
“`

在这个命令中,您提供了:

  • AVI视频作为输入
  • 明确的输出MP4文件名
  • 让FFmpeg直接将视频和音频从AVI容器格式复制到MP4容器格式(命令为:-c:v copy -c:a copy)

注意:假设您已经有一个想要转换的AVI文件。如果没有,您可以通过搜索“avi video samples”获取,或从以下链接下载(这是我在FFmpeg系列文章中使用的示例文件):下载示例AVI文件

了解Format和Codecs的区别非常重要。

简单来说:

编解码器(Codecs)负责将原始音频和视频进行压缩,以合理的大小存储。这种压缩是在考虑音频和视频质量的前提下完成的。更多关于视频压缩的信息,请阅读视频编码完全指南

音频和视频压缩的输出会被打包进一个称为容器(Formats)的格式中。不同的容器格式包括MP4、AVI、WebM、MKV等。

FFmpeg转换格式时发生了什么?

当您将AVI文件交给FFmpeg并生成一个不带任何参数的MP4文件时,FFmpeg会解复用输入文件,提取原始视频进行重新编码,然后将它放入MP4容器格式中,最后返还给您输出文件。

关键点在于:除非您明确告知FFmpeg不要重新编码,否则它将默认重新编码内容。这一点非常重要!重新编码是默认设置。

这也是在文章开头我们指示FFmpeg只复制音频和视频的原因。

现在,让我们尝试使用FFmpeg通过重新编码将AVI文件转换为MP4。

在此之前,我们先检查一下AVI文件,研究其中的参数。我们可以使用ffprobe,它是FFmpeg工程中的一个工具,对于分析视频文件非常有用。

请运行以下命令:

“`bash
ffprobe -i file_example_AVI_1280_1_5MG.avi
“`

您将得到以下输出:

“`plaintext
Input #0, avi, from ‘file_example_AVI_1280_1_5MG.avi’: Metadata: encoder : Lavf57.19.100 Duration: 00:00:30.61, start: 0.000000, bitrate: 387 kb/s Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(progressive), 1280×720 SAR 1:1 DAR 16:9, 234 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc Stream #0:1: Audio: aac (LC) ( / 0x00FF), 48000 Hz, stereo, fltp, 139 kb/s
“`

上面的输出显示了两个媒体流——视频 #0:0 和音频 #0:1。视频分辨率为1280×720、30fps,视频编码方式为High Profile的H.264/AVC,码率为234 kbps。音频使用AAC,码率为139 kbps,采样率为48 KHz。

使用FFmpeg重新编码AVI到MP4

现在,让我们使用FFmpeg将AVI视频转换为MP4,但使用VP9而非H.264/AVC。下面是实现转换的命令行:

“`bash
ffmpeg -i file_example_AVI_1280_1_5MG.avi -c:a copy -c:v vp9 -b:v 100K outputVP9.mp4
“`

在这里,您使用FFmpeg:

  • 使用 `-c:a copy` 参数原样复制音频(不重新编码音频)
  • 使用VP9编码,码率设置为100kbps (`-c:v vp9 -b:v 100K`)
  • 输出名为 `outputVP9.mp4` 的MP4文件

运行上述命令时,控制台的输出可能如下:

“`plaintext
Input #0, avi, from ‘file_example_AVI_1280_1_5MG.avi’: Metadata: encoder : Lavf57.19.100 Duration: 00:00:30.61, start: 0.000000, bitrate: 387 kb/s Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p(progressive), 1280×720 SAR 1:1 DAR 16:9, 234 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc Stream #0:1: Audio: aac (LC) ( / 0x00FF), 48000 Hz, stereo, fltp, 139 kb/s Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> vp9 (libvpx-vp9)) Stream #0:1 -> #0:1 (copy)
“`

控制台输出显示FFmpeg使用了libvpx-vp9重新编码了视频流,码率是100kbps。

您可以通过运行以下命令确认FFmpeg成功输出了MP4,并且使用了VP9编码:

“`bash
ffprobe -i outputVP9.mp4
“`

控制台输出将确认使用VP9编码,码率接近100kbps。

转换过程中重新编码是好是坏?

这取决于您是想直接复制视频并只改变容器格式(从AVI转换为MP4),还是确实想重新编码视频并更改视频质量、大小等。

如果您选择不重新编码(从AVI到MP4的无损转换),会发生什么?

在这种情况下,您只需运行以下命令:

“`bash
ffmpeg -i input_filename.avi -c:v copy -c:a copy -y output_filename.mp4
“`

您向FFmpeg传递的信息如下:

  • AVI视频是输入文件
  • 确定输出的MP4文件名
  • 告知FFmpeg直接将视频和音频从AVI容器格式转到MP4容器格式(命令为:-c:v copy -c:a copy)

顺便说一句,上述操作在我的Mac上只花了0.3秒。这是因为FFmpeg只是复制AVI文件中的视频和音频,并未重新编码,并将它们放入MP4容器。

由于视频并未重新编码,因此这种从AVI到MP4的转换可以认为是无损转换。然而,如果您是视频压缩工程师,我建议您在提到无损视频压缩时谨慎一些。毕竟,压缩总会带来一定程度的质量损失。

到这里,您已经了解了如何使用FFmpeg将AVI转换为MP4。这真的很简单,对吧?

FFmpeg安装指南

以下是FFmpeg在不同操作系统上的安装方法:

如何在Windows上安装FFmpeg?

如果您不是程序员且无法使用编码工具,那么在Windows上编译和安装FFmpeg可能会比较复杂。您可以前往 OTTVerse’s FFmpeg builds 下载已编译的.exe文件。建议下载静态版本(除非您正在开发软件并需要共享库)。

如何在MacOS安装FFmpeg?

在Mac上,您可以使用brew指令安装FFmpeg,brew是Mac系统中一个非常方便的包管理器。下面是在Mac上安装FFmpeg的命令行(在Catalina v 10.15.5上测试和使用):

“`bash
brew install ffmpeg
“`

如何在Ubuntu上安装FFmpeg?

在Ubuntu上,您可以通过多种方式安装FFmpeg:使用apt包管理器或从源代码编译。如果您想通过apt快速安装FFmpeg,可以使用以下命令:

“`bash
sudo apt install ffmpeg
“`

如果您想从源代码编译FFmpeg,可以使用FFmpeg官方安装指南中提到的步骤:FFmpeg官方安装指南

或者您也可以参考我写的这篇文章:FFmpeg安装指南,我已经详细描述了FFmpeg的安装过程(包括缺少步骤)。

致谢:

本文已获得作者Krishna Rao Vijayanagar授权翻译和发布,特此感谢。

原文链接:

https://ottverse.com/ffmpeg-convert-avi-to-mp4-lossless/

FFmpeg视频格式转换教程_FFmpeg AVI转MP4无损转换_格式转换

{1、FFmpeg} {2、视频转换} {3、AVI转MP4} {4、视频编码} {5、无损转换} {6、格式转换} {7、临界区}


本文是基于《使用FFmpeg将AVI转换为MP4,简单又高效!你知道怎么做吗?》的AI重写版本

免责声明:本站为个人博客,博客所发布的一切修改补丁、注册机和注册信息及软件的文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 访问和下载本站内容,说明您已同意上述条款。本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。