如何在 Linux 中为视频创建缩略图

缩略图表是包含视频帧的典型图像文件。视频缩略图表源自大约十年前更流行的照片表,当时人们还在打印照片。就像当时照片表充当电影和 SD 卡中图片的预览一样,我们在这里看到的缩略图表充当视频文件的预览。它们可以更轻松、更快速地翻阅视频来检查视频的内容和质量,而不是在媒体播放器中打开视频从头到尾“扫描”。

值得庆幸的是,您不必从视频中提取特定帧,然后手动将它们排列在单个图像中。您可以使用工具轻松地从视频创建缩略图表。在本文中,我们向您展示了在 Linux 中执行此操作的两种方法。

使用 Gnome 视频

如果您使用 Gnome,它的默认媒体播放器名为“Videos”(实际上是“Gnome Videos”,因为它是 Gnome 工具套件的一部分,最近被称为“Totem”),提供了一个轻松创建缩略图的选项。

要使用它,请运行该程序。

打开要从中创建缩略图的视频,然后从应用程序的菜单中选择“创建屏幕截图库...”

弹出的窗口将为您提供一些有关缩略图表的基本选项。您可以更改每个缩略图的宽度,并让程序自动选择屏幕截图的数量或选择您想要的数量。

然后,您只需在窗口顶部中间输入图像表文件的名称,然后单击右上角的“保存”。

生成的文件很有用,但如果它看起来不像您预期​​的那样,那么您无能为力。为了更好地控制结果,您将不得不使用提供更多选项的东西。

另请阅读: 如何在 Linux 中下载并配置 DaVinci Resolve

使用FFMPEG

FFMPEG是一个公认的非常复杂的命令行工具,您可以使用它以多种方式处理视频。其中之一是缩略图表的创建。不过,要做到这一点,您必须编写一个稍微复杂的命令。它看起来像这样:

ffmpeg -ss 3 -i "/path/to/video/file.mp4" -frames 5 -vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3" -vsync vfr -q:v 10 image-sheet-filename_%03d.jpg
  • -ss定义距视频文件开头的时间偏移量。大多数视频都以标题序列开头,在大多数情况下,拥有标题序列的缩略图是没有用的。通过此开关,我们指示 FFMPEG 忽略视频开头的“X”秒,以跳过其可能不那么令人兴奋的介绍。
  • -i设置 FFMPEG 从中提取缩略图的输入文件。
  • -frames定义将记录的帧数。
  • -q:v设置生成的图像文件的压缩质量。

至于这个命令中最有趣但也最复杂的部分,我们必须对其进行一些扩展,因为它同时执行三件事。我们正在谈论这个:

-vf "select=not(mod(n\,3000)),scale=320:240,tile=4x3"

-vf开头指示 FFMPEG 使用视频过滤器。Select=not(mod(n\,3000))负责最终图像中选定的帧。它将当前帧的编号(“n”)除以提供的编号(“3000”)。视频是否已到达第 3001 帧?如果我们将 3001 除以数字 3000,我们得到 1,因此该帧将是第一个生成的图像表中的第一帧。我们已经到达帧 6001 了吗?由于 6001/3000 给我们 2,这将是第二帧,依此类推。因此,通过减少此数字,可以增加帧选择的频率,反之亦然。

随着scale=320:240部分,我们在最终缩略图表中设置每个缩略图的尺寸。为了获得最佳效果,考虑到其宽高比,这应该是原始视频分辨率的一小部分。

最后,tile=4x3该命令的一部分定义了缩略图在每个工作表中的排列方式。

也许您注意到生成的图像文件的最终文件名如下所示:

filename_%03d.jpg

%03d部分指出,如果 FFMPEG 最终选择的帧数超出了单张纸的容纳范围,则根据您的标题设置,它将生成更多带有编号文件名的图像表。通过减少选择的“n\,NUMBER”或每张图块的数量,将生成更多文件,反之亦然。

当然,这也取决于视频文件的长度。毕竟,这只是数学:像《指环王》这样 3-1/2 小时的史诗巨制,比皮克斯的一部短片多出数十万帧。

如果要控制 FFMPEG 将生成的图像表文件的数量,请使用以下公式:

Total Frames In Your Video / Number Of Tiles In A Sheet / Number Of Image Sheets You Want

使用命令的“mod(n\,RESULTS)”部分中的值。

如果您更喜欢单个图像而不是缩略图,FFMPEG 还允许您将视频反编译成单独的图像.

您还可以通过哪些其他方式从视频中生成缩略图表?