想要快速将AVI视频转换为MP4格式?本文将详细介绍如何使用FFmpeg工具进行格式转换,包括无损转换方法、编码器与容器的区别,以及在不同操作系统(Ubuntu、Mac、Windows)上的安装步骤。掌握这些技巧,让你的视频处理更高效!

文章标题:FFmpeg轻松搞定:AVI转MP4,简单高效全解析!

文章内容:

Easy-Tech#021#

这篇文章将带你掌握如何使用FFmpeg将AVI视频格式转换为MP4格式,同时还会介绍在Ubuntu、Mac和Windows系统上安装FFmpeg的方法,以及如何实现AVI到MP4的无损转换。

视频爱好者们常常问:“如何把AVI转换成MP4?”虽然这个问题听起来有点复杂,但使用FFmpeg进行转换其实非常简单明了。

FFmpeg是全球最关键、最受欢迎的视频处理和压缩库之一。许多高效的商业编码器都基于FFmpeg,而Handbrake、VLC等知名软件也依赖FFmpeg的支持。

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

直接上命令

如果你急着将AVI转换为MP4,可以直接运行以下FFmpeg命令,这个方法适用于大多数情况:

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

在这个命令中,你需要提供:

AVI视频作为输入

明确输出MP4的文件名

让FFmpeg直接将视频和音频(命令为:-c:v copy -c:a copy)从AVI容器格式复制到MP4容器格式。

注意:假设你已经有了要转换的AVI文件。如果没有,可以在网上搜索“avi video samples”获取,或者从以下链接下载:[file_example_AVI_1280_1_5MG.avi](https://file-examples-com.github.io/uploads/2018/04/file_example_AVI_1280_1_5MG.avi)

你需要了解的最重要的事就是Formats和Codecs之间的区别。

简单来说:

编解码器(Codecs)负责压缩原始音频和视频,使其在合理空间内存储。这种压缩是在保证音视频质量的前提下完成的。更多关于视频压缩的介绍,请阅读:视频编码完全指南。

音频和视频压缩后的输出会被打包进一个容器(Formats)中,而打开容器以及读取音频和视频的方式也有明确规则。常见的容器格式包括MP4、AVI、WebM、MKV等。

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

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

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

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

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

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

请运行以下命令:

ffprobe -i file_example_AVI_1280_1_5MG.avi

结果如下:

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,但使用VP9编码而非H.264/AVC。下面是转换命令:

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文件

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

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) Press to stop, for help

libvpx-vp9 @ 0x7f8fcb00f600

v1.8.2 Output #0, mp4, to ‘outputVP9.mp4’: Metadata: encoder : Lavf58.45.100 Stream #0:0: Video: vp9 (libvpx-vp9) (vp09 / 0x39307076), yuv420p, 1280×720

SAR 1:1 DAR 16:9

, q=-1–1, 100 kb/s, 30 fps, 15360 tbn, 30 tbc Metadata: encoder : Lavc58.91.100 libvpx-vp9 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 139 kb/s frame= 903 fps=1.2 q=0.0 Lsize= 959kB time=00:00:30.54 bitrate= 257.2kbits/s dup=2 drop=0 speed=0.0414x video:421kB audio:521kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.800530%

通过控制台输出,可以发现FFmpeg使用libvpx-vp9重新编码了视频流,码率是100kbps。

使用ffprobe确认FFmpeg成功输出MP4,且视频编码为VP9:

ffprobe -i outputVP9.mp4

控制台输出确认:使用VP9编码,码率为114 kbps(接近100kbps)。

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘outputVP9.mp4’: Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf58.45.100 Duration: 00:00:30.57, start: 0.000000, bitrate: 257 kb/s Stream #0:0(und): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv, progressive), 1280×720, 114 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 137 kb/s (default) Metadata: handler_name : SoundHandler

major-brand是isom,说明文件符合ISO/IEC基础媒体格式(ISO/IEC 14496-12 – MPEG-4 Part 12),即MP4。

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

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

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

这种情况下,操作非常简单!直接运行以下命令:

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

你向FFmpeg传递的信息如下:

AVI视频是输入文件

确定输出的MP4文件名

告知FFmpeg直接将视频和音频(命令为:-c:v copy -c:a copy)从AVI容器格式转到MP4容器格式。

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

由于视频未重新编码,这种从AVI到MP4的转换可以视为无损转换。不过,如果你这么做了,请在距离视频压缩工程师三米之内的位置谨慎使用“无损”这个词。要是被逮到,请一定给他买杯咖啡或阿司匹林压压惊。

至此,你已经掌握了如何使用FFmpeg将AVI转换为MP4。很简单,对吧?

红利:FFmpeg安装指南

1、如何在Windows上安装FFmpeg?

如果你不是程序员,且无法使用编码工具,那么在Windows上编译和安装FFmpeg将是一个复杂的过程。建议前往OTTVerse’s FFmpeg builds([https://ottverse.com/ffmpeg-builds/](https://ottverse.com/ffmpeg-builds/))下载已编译的.exe文件。建议下载静态版本(除非你计划使用FFmpeg开发软件并需要共享库)。

2、如何在MacOS安装FFmpeg?

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

brew install ffmpeg

3、如何在Ubuntu上安装FFmpeg?

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

sudo apt install ffmpeg

如果你想从源代码编译FFmpeg,可以使用FFmpeg官方安装指南中提到的步骤:[https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu);

或者你也可以参考我写的这篇文章:[https://ottverse.com/vmaf-ffmpeg-ubuntu-compilation-installation-usage-guide/](https://ottverse.com/vmaf-ffmpeg-ubuntu-compilation-installation-usage-guide/),我已经描述了FFmpeg安装过程(包括缺少步骤)。

致谢:

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

原文链接:

[https://ottverse.com/ffmpeg-convert-avi-to-mp4-lossless/](https://ottverse.com/ffmpeg-convert-avi-to-mp4-lossless/)

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

{1、FFmpeg} {2、AVI转MP4} {3、视频格式转换} {4、无损转换} {5、视频编码} {6、Windows安装} {7、MacOS安装} {8、Ubuntu安装} {9、临界区}


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

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