良许Linux教程网 干货合集 Linux 上通过 FFmpeg 命令进行音频和视频处理

Linux 上通过 FFmpeg 命令进行音频和视频处理

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

img

Linux 上的 FFmpeg 安装

FFmpeg 是一个免费的开源工具,可在几乎所有主要 Linux 发行版的默认存储库中使用。如果你想自己编译它,你也可以免费获得它的源代码

# Debian
sudo apt install ffmpeg

# Fedora
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf -y install ffmpeg

# RHEL/CentOS
yum install ffmpeg ffmpeg-devel

# Arch Linux
pacman -S ffmpeg1.2.3.4.5.6.7.8.9.10.11.12.

如果安装过程一切顺利,当你使用-version参数时,你应该能够看到 FFmpeg 版本。

ffmpeg -version1.
img
img

使用 FFmpeg 获取视频信息

可以使用-i标志查看要使用 FFmpeg 编辑的视频的信息:

ffmpeg -i linuxmi.mp4 -hide_banner1.

在这里,-hide_banner参数的作用是隐藏不必要的信息。您可以删除此参数并查看输出的差异。

img
img

如您所见,可以获得大量信息,例如示例视频的视频编解码器类型、创建日期、元数据和编码器结构。

将视频或音频文件转换为另一种格式

FFmpeg 最有用的功能之一是它可以将视频或音频转换为另一种格式。你可以用简单的单行来做到这一点。

使用 FFmpeg MOV 到 MP4

您可以使用以下命令使用 FFmpeg 将您的 MOV 格式视频文件转换为 MP4:

ffmpeg -i linuxmi.mov output-linuxmi.mp41.
img
img

首先,使用-i参数,它代表输入视频。然后,输入要转换的文件。最后,输入要转换的格式。你可以给你的输出任何你想要的名字。

当 FFmpeg 运行时,它会在命令屏幕上显示它所做的更改。您的输出文件将存储在您当前的工作目录中。

使用 FFmpeg 把 WAV 转换到 MP3

与视频类似,您可以对音频文件进行相同的转换。例如,您可以将 WAV 音频文件转换为 MP3,如下所示:

ffmpeg -i linuxmi.wav -vn -ar 48000 -ac 2 -b:a 256 output-linuxmi.mp31.

该命令的参数比视频转换方法要多,但也不难理解。要解释这些:

  • vn:有时你听的音频文件有图片。这些图像通常来自视频。如果您不希望在输出中出现此类图像,则可以使用此参数。
  • ar:此参数允许您设置要转换的音频文件的音频频率。您可以使用 8kHz、44.1kHz 或 48kHz 等值调整音质和频率。
  • ac:您之前可能听说过单声道和立体声这两个术语。此参数可以帮助您设置音频通道的数量。
  • b:a:此参数允许您设置每秒的音频比特率。千位越高,音质越高。

使用 FFmpeg 进行音频操作

FFmpeg 还可以将音频与视频分开。为此,使用-vn参数就足够了:

ffmpeg -i linuxmi.mp4 -vn output.mp31.

如果您设法将音频与视频分开,您现在可以尝试从视频中删除音频。这里的区别在于-an参数。如果要禁用视频中的任何声音,则应牢记此参数:

ffmpeg -i example-video.mp4 -an output-mute.mp41.

使用 FFmpeg 处理视频大小

视频大小有时会很烦人,尤其是当您想将它们上传到某个地方时。您不再需要下载程序来修剪它们,因为 FFmpeg 可以为您做到这一点。但是,您需要了解一些参数:

  • -ss:使用此参数设置剪辑的开始时间
  • -to:允许您指定剪辑的结束时间
  • -c:使用此参数设置剪辑的编解码器
  • -t:使用此参数设置剪辑的持续时间

您可以使用这些参数导出许多示例。例如,如果你想修剪视频,你可以使用类似的东西:

ffmpeg -i example-video.mp4 -ss 00:02:25 -to 00:03:50 -c copy output-trim.mp41.

也可以只裁剪视频内的图像而不是整个视频。为此,您可以使用以下方法:

ffmpeg -i example-video.mp4 -filter:v "crop=w:h:x:y" output-crop.mp41.

以下是上述命令中使用的参数:

  • -filter:v:此参数指定您将应用于视频的过滤过程
  • crop:此参数用于指定将执行裁剪操作
  • w:h❌y:您可能已经猜到了,w、h、x 和 y 变量分别表示裁剪框的宽度、高度和位置

使用 FFmpeg 在 Linux 上编辑视频

编辑视频并不仅仅是修剪和剪切。有时您还需要更改视频的比例。以下命令会将视频大小调整为您想要的大小:

ffmpeg -i example-video.mp4 -vf scale=1920:1080 output-scale.mp41.
  • -vf:此参数的作用与上面看到的-filter:v参数相同
  • scale:您可以使用此参数在输出中指定所需的比例大小

FFmpeg 还允许您组合多个视频。想象一下,您有多个使用相同编解码器编码的剪辑。输入要合并到.txt文件中的视频列表。然后,运行以下命令:

ffmpeg -f concat -i my-video-list.txt -c copy sum-output.mp41.

此处的concat参数组合了您的文件。也可以使用 FFmpeg 旋转视频:

ffmpeg -i linuxmi.mp4 -vf "transpose=2" output-rotate.mp41.
  • transpose=0:垂直翻转(默认)
  • transpose=1: 顺时针旋转 90 度
  • transpose=2: 逆时针旋转 90 度
  • transpose=3: 垂直翻转
img
img

要将视频顺时针旋转 180 度,您需要指定 transpose 参数两次:

ffmpeg -i example-video.mp4 -vf "transpose=2,transpose=2" output-rotate.mp41.

FPS 和 GOP 操作

如您所知,FPS 表示每秒帧数。GOP(图片组)是两个关键帧之间的距离。FFmpeg 也可用于更改一些参数,包括 FPS 和 GOP。如果您使用以下命令,FFmpeg 会将原始 FPS 更改为您设置的值:

ffmpeg -i example-video.mp4 -vf "fps=60" output-fps.mp41.

对于 GOP,您可以使用-g参数并将其值设置为您想要的任何值。请注意,强制使用过多的关键帧可能对某些编码器的前向算法有害。

ffmpeg -i example-video.mp4 -g 200 output-gop.mp41.

使用 FFmpeg 创建动画 GIF

FFmpeg 也是将视频转换为动画 GIF 的理想选择。您可以使用简单的转换命令来执行此操作:

ffmpeg -i linuxmi.mp4 output-gif.gif1.
img
img

但有时,您可能想要自定义 GIF。您可以使用上面讨论的各种参数来实现此目的:

ffmpeg -ss 00:01:15 -i example-video.mp4 -to 10 -r 10 -vf scale=250:-1 output-gif.gif1.

这里的-r参数表示帧率。如您所见,在单行命令中可以进行许多不同的自定义。

使用 FFmpeg 从视频中提取帧

除了将一张或多张图像转换为视频外,您还可以从视频中提取帧。以下命令将从您的输入视频中每秒提取一帧。此外,这些提取的图像将具有两位数的名称,例如01.jpeg、02.jpeg等。如果您愿意,还可以添加您学到的其他参数。

ffmpeg -i linuxmi.mp4 -r 1 image-%02d.jpeg1.
img

您还可以对提取的图像使用其他格式,例如 PNG 和 BMP。

为什么要在 Linux 上使用 FFmpeg?

如您所见,FFmpeg 在很多方面都非常有优势。您不需要为此具备任何技术知识或专业 Linux 经验。只需几个参数,您就可以执行各种媒体处理功能。此外,FFmpeg 即使在低端设备上也能很好地工作。

此外,FFmpeg 的功能不限于以上。当您阅读文档和用户手册时,您可以看到该软件实际上是多么强大。即使使用–help参数和man命令,您也可以获得有关使用 FFmpeg 的更多详细信息。当然还有其他伟大的 Linux 转换器可以与 FFmpeg 相媲美。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部