当前位置: 首页 > 科技观察

如何在Linux上使用FFmpeg命令进行音视频处理

时间:2023-03-14 18:06:11 科技观察

FFmpeg是一个著名的命令行媒体处理工具。下面介绍如何在Linux上安装和使用它来修改音频和视频文件。几乎所有处理视频的人都可能听说过FFmpeg。对于外行来说,FFmpeg是一个免费的开源程序,可以将任何视频格式转换为另一种格式并更改其编解码器。FFmpeg支持几乎所有的音频/视频编解码器(H.264、H.265、VP8、VP9、AAC、OPUS等)、文件格式(MP4、FLV、MKV、TS、WEBM、MP3等),甚至流媒体协议(HTTP、RTMP、RTSP、HLS等)。下面介绍如何在Linux上安装使用FFmpeg来处理音视频文件。Linux安装上的FFmpegFFmpeg是一个免费的开源工具,几乎所有主要Linux发行版的默认存储库中都有。如果您想自己编译,也可以免费获得它的源代码。#Debiansudoaptinstallffmpeg#Fedorasudodnf安装https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm-E%fedora).noarch.rpmsudodnf-yinstallffmpeg#RHEL/CentOSyuminstallffmpegffmpeg-devel#ArchLinuxpacman-Sffmpeg如果安装一切顺利,你应该可以在使用-version参数时看到FFmpeg版本。ffmpeg-version使用FFmpeg获取视频信息可以使用-i标志查看要用FFmpeg编辑的视频信息:ffmpeg-ilinuxmi.mp4-hide_banner这里-hide_banner参数的作用是隐藏不需要的信息。您可以删除此参数并查看输出的差异。如您所见,有很多信息可用,例如示例视频的视频编解码器类型、创建日期、元数据和编码器结构。将视频或音频文件转换为另一种格式FFmpeg最有用的功能之一是它能够将视频或音频转换为另一种格式。你可以用一个简单的单线来做到这一点。使用FFmpegMOV转MP4您可以使用FFmpeg使用以下命令将MOV格式的视频文件转换为MP4:ffmpeg-ilinuxmi.movoutput-linuxmi.mp4首先,使用-i参数,它代表输入视频。然后,输入要转换的文件。最后,输入要转换的格式。你可以给你的输出任何你想要的名字。当FFmpeg运行时,它会在命令屏幕上显示它所做的更改。您的输出文件将存储在您当前的工作目录中。使用FFmpeg将WAV转换为MP3类似于视频,您可以对音频文件进行相同的转换。例如,您可以将WAV音频文件转换为MP3,如下所示:ffmpeg-ilinuxmi.wav-vn-ar48000-ac2-b:a256output-linuxmi.mp3这个命令比视频转换方法有更多的参数,不过也不难理解。解释一下:vn:有时候你听的音频文件有图片。这些图像通常来自视频。如果您不想在输出中出现此类图像,则可以使用此参数。ar:此参数允许您设置要转换的音频文件的音频频率。您可以使用8kHz、44.1kHz或48kHz等值调整音质和频率。ac:您之前可能听说过单声道和立体声这两个术语。此参数可帮助您设置音频通道数。b:a:此参数允许您设置每秒的音频比特率。千比特越高,音质越高。使用FFmpeg进行音频处理FFmpeg还可以将音频与视频分开。为此,使用-vn参数就足够了:ffmpeg-ilinuxmi.mp4-vnoutput.mp3如果您设法将音频与视频分开,您现在可以尝试从视频中删除音频。这里的区别是-an参数。如果你想禁用视频中的任何声音,你应该记住这个参数:ffmpeg-iexample-video.mp4-anoutput-mute.mp4使用FFmpeg处理视频大小视频大小有时会很烦人,尤其是当你想要去某个地方时上传它们。您不再需要下载程序来修剪它们,因为FFmpeg可以为您完成。但是,您需要了解一些参数:-ss:使用此参数设置剪辑的开始时间-to:允许您指定剪辑的结束时间-c:使用此参数设置剪辑的编解码器clip-t:使用此参数设置剪辑的持续时间您可以使用这些参数导出许多样本。例如,如果你想修剪视频,你可以使用类似:ffmpeg-iexample-video.mp4-ss00:02:25-to00:03:50-ccopyoutput-trim.mp4你也可以只需裁剪内部的视频图像而不是整个视频。为此,您可以使用以下方法:ffmpeg-iexample-video.mp4-filter:v"crop=w:h:x:y"output-crop.mp4以下是上述命令中使用的参数:-filter:v:此参数指定将应用于视频裁剪的过滤过程:此参数用于指定将执行裁剪操作w:h:x:y:您可能已经猜到了,w、h、x和y变量表示裁剪框的宽度、高度和位置使用FFmpeg在Linux上编辑视频编辑视频不仅仅是修剪和剪切。有时您还需要更改视频的纵横比。以下命令会将视频调整为您想要的大小:ffmpeg-iexample-video.mp4-vfscale=1920:1080output-scale.mp4-vf:此参数的作用与上面看到的-filter:v相同该参数是与比例相同:您可以使用此参数指定输出中所需的比例大小。FFmpeg还允许您合并多个视频。假设您有多个使用相同编解码器编码的剪辑。输入要合并到.txt文件中的视频列表。然后,运行以下命令:ffmpeg-fconcat-imy-video-list.txt-ccopysum-output.mp4这里的concat参数合并了你的文件。也可以使用FFmpeg来旋转视频:ffmpeg-ilinuxmi.mp4-vf"transpose=2"output-rotate.mp4transpose=0:垂直翻转(默认)transpose=1:顺时针旋转90度transpose=2:旋转90counterclockwisedegreestranspose=3:垂直翻转要将视频顺时针旋转180度,您需要指定两次transpose参数:ffmpeg-iexample-video.mp4-vf"transpose=2,transpose=2"output-rotate.mp4FPS和GOP操作如您所知,FPS表示每秒帧数。GOP(GroupofPictures)是两个关键帧之间的距离。FFmpeg也可以用来改变一些参数,包括FPS和GOP。如果您使用以下命令,FFmpeg会将原始FPS更改为您设置的值:ffmpeg-iexample-video.mp4-vf"fps=60"output-fps.mp4对于GOP,您可以使用-g参数并进行设置将值设置为您想要的任何值。请注意,强制使用太多关键帧可能会对某些编码器的前向算法产生不利影响。ffmpeg-iexample-video.mp4-g200output-gop.mp4使用FFmpeg创建动画GIFFFmpeg也是将视频转换为动画GIF的理想选择。您可以使用一个简单的转换命令来完成此操作:ffmpeg-ilinuxmi.mp4output-gif.gif但有时,您可能想要自定义GIF。您可以使用上面讨论的各种参数来实现此目的:ffmpeg-ss00:01:15-iexample-video.mp4-to10-r10-vfscale=250:-1output-gif.gif这里的-r参数表示帧率。如您所见,可以在单个命令行中进行许多不同的自定义。使用FFmpeg从视频中提取帧除了将一个或多个图像转换为视频外,您还可以从视频中提取帧。以下命令将从您的输入视频中每秒提取一帧。此外,这些提取的图像将具有两位数的名称,例如01.jpeg、02.jpeg等。您还可以根据需要添加您学到的其他参数。ffmpeg-ilinuxmi.mp4-r1image-%02d.jpeg您还可以使用其他格式提取图像,例如PNG和BMP。为什么在Linux上使用FFmpeg?如您所见,FFmpeg有很多优点。您不需要任何技术知识或专业的Linux经验即可执行此操作。只需几个参数,您就可以执行各种媒体处理功能。此外,FFmpeg即使在低端设备上也能很好地工作。此外,FFmpeg的功能不限于以上。当您阅读文档和用户手册时,您可以了解该软件的实际功能。即使使用--help参数和man命令,您也可以获得有关使用FFmpeg的更多详细信息。当然还有其他与FFmpeg相媲美的优秀Linux转换器。