如何在 Ubuntu 中使用 FFMPEG 转换视频
在现代世界,YouTube 和其他社交媒体应用程序成为观看数字媒体的主流方式,上传视频已成为一种常见做法。事实上,它已经变得如此普遍,以至于创建和编辑音频和视频文件在短短几十年内已成为新常态。显然,人们可以购买一些昂贵的工具来满足自己的需求,但如果我们可以免费做到这一点呢?如果几行代码几乎可以完成您需要的任何与视频相关的任务怎么办?
ffmpeg 是一个免费开源的视频转换、提取和编辑工具,为这个问题提供了答案! ffmpeg 不能做什么?几乎没有。可以借助 ffmpeg 执行的任务包括音频文件转换、视频文件转换、照片转换、从视频文件提取图像文件、从图像文件生成视频、从视频中提取音频、裁剪视频和照片、修剪视频、重新-调整视频大小、提高音量以及创建屏幕录制。
在 Ubuntu 中安装 FFmpeg
默认情况下,Ubuntu 中并未预安装 Ffmpeg,因此您首先必须安装此程序才能使用它。要完成安装,您必须是 root 用户。接下来,输入以下命令来安装 FFmpeg:
apt-get install 命令适用于除 14.04 之外的所有版本的 Ubuntu。
音频转换
可以使用 ffmpeg 实用程序在一行代码中执行音频文件的文件类型转换。这种情况下,只需要传递两个参数:原文件名和新文件名。此命令允许您通过按名称自动检测文件类型来将任何文件格式转换为任何其他文件格式。因此,不需要额外的代码来指定文件类型。
您可以将自己的文件名和类型添加到这行代码中。这只是使用的基本语法。
视频转换
您还可以使用 ffmpeg 转换视频文件类型。输入命令时,您只需要原始文件的名称和输出文件的名称。 -i 标记表示输入文件。
照片转换
适用于视频和音频文件的原则也适用于图像文件。您只需使用下面所示的语法,就可以使用 ffmpeg 快速轻松地将一种照片格式转换为另一种格式:
从视频文件中提取图像
FFmpeg 还可以用于从视频文件中提取图像。换句话说,该程序可以在视频过程中的精确时间截取屏幕截图,并将屏幕截图保存为图像文件的集合。例如:
在这种情况下,-i 标记描述将从中提取图像文件的视频文件。然而,我们仍然没有给程序任何关于图像质量或屏幕截图时间的规格。因此,在输入代码之前首先需要指定这些详细信息。
如果我们写如下:
输出文件名称后面的 %d 值表示一个变量,您可以根据您想要从视频生成的每秒帧数来自定义该变量。当图片以每秒一帧的速度生成时,每张照片将被标记为output_file1.jpg;每秒两帧,output_file2.jpg;每秒三帧,output_file3.jpg;等等。如果电影每秒有 35 帧,并且长度为一秒,则将 %d 变量的值设置为 1 将生成 35 张照片。
接下来,如果我们想以一定的每秒帧率捕获图像怎么办? fps 值在 ffmpeg 语法中对此进行定义。要每秒捕获 1 帧,您可以将 fps 值设置为 1。
同样,通过将 fps 值定义为 1/6000,以下命令将每 6,000 秒的视频生成 1 个图像:
在上面的命令中,术语 %6d 将生成一个六位数字的变量。输出文件将标记如下:output_file000001.jpg、output_file000002.jpg 等。
现在,假设您不想捕获所有帧。相反,您希望更具选择性并希望在两个时间范围之间捕获一定数量的图像。然后,语法将如下所示:
此代码将从 00:00:01 开始捕获图像,持续 4 秒。换句话说,图像捕获将从视频中的 00:00:01 开始,到 00:00:05 结束。与往常一样,输出文件名称中的数字将由三位数组成(即,output_file001.jpg、output_file002.jpg 等)。
从图像文件生成视频
如果您想做相反的事情并将图像组合在一起形成视频怎么办? FFmpeg 再次拯救你!
阅读前面的部分后,您现在知道术语 img%03.png 代表什么 - 要编译到视频中的源图像文件。在此语法中,-c:v 标记表示视频的编解码器,fps 表示每秒帧数值,r 表示输出视频的帧速率。
从视频中提取音频
从视频文件中提取音频文件怎么样?网络上有一些工具可以用来执行此任务,但使用 ffmpeg,一行代码也可以完成这项工作。
在上面的语法中,video.mp4 是输入视频文件,output_file.mp3 是输出音频文件。 -map a 标签采用默认音频流并排除任何字幕,c:a 指定要使用的音频的编解码器,q:a 定义音频的可变比特率。
如果您只想从视频文件中提取音频文件的一部分,可以使用以下语法来执行此操作。在以下代码中,仅提取 00:00:08 到 00:00:10 之间的音频部分:
显然,如果您愿意,您可以添加更多详细信息,但上面的示例是一个很好的起点。
裁剪视频和照片
如果你想裁剪视频怎么办?您可以花时间和金钱在其他地方找到裁剪软件,也可以使用 ffmpeg 的一行代码将视频裁剪为合适的尺寸。
例如:
修剪视频
修剪视频文件需要将它们从一个特定时间剪切到另一个特定时间。例如,将视频文件剪切成两个或三个片段就是修剪它。再次,使用 ffmpeg 可以轻松完成视频或音频文件的修剪。
在这种情况下,-ss 标记代表开始查找,或者开始修剪过程的时间。在上面的命令中,我们将从 00:00:20 开始剪切或修剪。 t 标签代表剪辑的持续时间。此处,剪切剪辑的持续时间将为 10 秒。最后,c:v 标签代表所使用的视频编解码器,而 c:a 标签代表所使用的音频编解码器。
调整视频
调整视频大小就像修剪和裁剪视频一样简单。
或者,您也可以执行以下操作:
这里,值 iw 定义输入宽度,而 ih 定义输入高度。后者也会对其进行扩展。
提高视频音量
在本文中,您了解了如何裁剪、修剪和转换视频和图像文件,但是如何提高音频和视频文件的音量呢?
在后一种情况下,我们谦虚地要求 ffmpeg 将文件的体积增加一倍。
创建屏幕录制
录制屏幕是一项经常需要执行的任务,无论是演示、视频共享还是在线会议。无论录制桌面的原因是什么,通常您都需要运行某种软件才能执行此操作。与昂贵的替代品不同,ffmpeg 可以免费为您做到这一点!
在上面的命令中,-f 标签代表屏幕视频录制的格式。在音频值之后,您将输入音频源。
另外,下面的代码只会抓取屏幕录制的视频,不添加任何声音:
结论
总的来说,ffmpeg 是一个非常有用的程序,它允许您在一行代码中完成很多事情。您可以在线购买昂贵的工具来满足您的编辑需求,也可以通过安装 ffmpeg 实用程序免费尝试这些功能。