如何使用 ffmpeg 输出屏幕截图库/马赛克?

Lev*_*van 8 video ffmpeg thumbnails image-processing

我想知道如何使用 ffmpeg 来创建这样的视频缩略图(取自 VLC 论坛):

7x3 的视频静止网格

我知道图腾可以做到这一点,但图腾不支持我使用的视频格式

这篇文章说ffmpeg可以做到。

llo*_*gan 7

从电影中创建屏幕截图马赛克 ffmpeg

创建屏幕截图马赛克

如果您使用的是早于 Ubuntu 15.04 的任何东西,那么ffmpeg存储库中所谓的“ ”包是指来自 Libav fork 的假版本,它没有您需要的功能,因此您必须下载一个静态版本ffmpeg或按照分步指南进行编译ffmpeg

使用实施例的命令selectscaletile过滤器:

./ffmpeg -i input -vf "select=gt(scene\,0.4),scale=160:-1,tile" -frames:v 1 \
-qscale:v 3 preview.jpg
Run Code Online (Sandbox Code Playgroud)

在此示例中,输出将为960x450. 如果你想改变它,你可以添加一个额外的比例过滤器,或者你可以改变每个图块的大小。600 像素宽输出的示例:

./ffmpeg -i input -vf "select=gt(scene\,0.4),scale=160:-1,tile,scale=600:-1" \
-frames:v 1 -qscale:v 3 preview.jpg
Run Code Online (Sandbox Code Playgroud)

您甚至可以在输出中添加文本。此示例将向图像顶部添加 24 像素的黑色填充,并在填充中心添加文本“钢铁侠”。

./ffmpeg -i input -vf "select=gt(scene\,0.4), \
  scale=160:-1, \
  tile, \
  scale=600:-1, \
  pad=iw:ih+24, \
  drawtext=fontsize=30:box=1:fontfile=/usr/share/fonts/TTF/Vera.ttf:text='Iron Man':x=(w-text_w)/2:0"
  -frames:v 1 -qscale:v 3 preview.jpg
Run Code Online (Sandbox Code Playgroud)

其他的东西

  • 您可以使用 控制输出质量-qscale:v。有效范围是2-31的线性刻度;其中 2 是最好的质量。

  • 有关更多信息,请参阅select过滤器文档