为命令行生成缩略图视频库的快速工具

stu*_*ent 22 command-line video

我使用gframecatcher生成缩略图视频库,即这样的:

在此处输入图片说明

然而,这是一个 GUI 工具,我想为目录结构中的每个视频递归创建一个画廊,所以我正在寻找一个快速的命令行工具来做到这一点。

uto*_*und 34

拉出图像捕获(这些是 100 像素高,并保持纵横比),速率 ( -r) 是每秒(每约 5 分钟产生一帧),这也为输出图像添加了时间戳。

ffmpeg  -i MOVIE.mp4 -r 0.0033 -vf scale=-1:120 -vcodec png capture-%002d.png
Run Code Online (Sandbox Code Playgroud)

然后用于ImageMagick构建您的画廊图像:

montage -title "Movie Name\nSubtitle" -geometry +4+4 capture*.png output.png
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用分数作为比率 (`-r`)。这使得指定时间更容易、更准确。5 分钟 = 300 秒`ffmpeg -i MOVIE.mp4 -r 1/300 -vf scale=-1:120 -vcodec png capture-%02d.png`。 (10认同)
  • 这有效,但需要通过整个视频文件进行管道检查。http://superuser.com/questions/538112/meaningful-thumbnails-for-a-video-using-ffmpeg 提供了一些尝试找到有意义的缩略图的示例,以及避免必须坐下来处理整个视频以获得几帧。 (4认同)

小智 16

我喜欢使用一个易于使用的 unix 命令行 bash 脚本,称为 VCS - 视频联系表。他们的官方页面:http : //p.outlyer.net/vcs/

它比GUI更容易使用甚至更容易

''这是一个 bash 脚本,用于创建视频联系表(预览)又名缩略图或视频预览。此脚本可以使用 mplayer 和 ffmpeg 支持的任何视频。'' 您需要在系统上安装ffmpegmplayer

用法:

vcs input-filename -U0 -i 1m -c 3 -H 200 -a 300/200 -o save-filename.jpg
Run Code Online (Sandbox Code Playgroud)

命令的工作原理

将 input-filename 编辑为您的视频文件的名称!

  • -U0(页脚中没有名称 - 否则它会显示主机名 - 请注意这是零而不是字母O

  • -i 1m(以分钟为单位设置捕获时间间隔 - 在这种情况下是每分钟 - 您也可以使用-n它来设置捕获数量,例如-n 21将创建 21 个图像,但不要同时使用两者)

  • -c 设置列数(这里是 3 列)

  • -H 200 -a 300/200 (设置大小和方面,所以文件不会太大 - 似乎你必须同时做)

  • -o filename.jpg(使用.jpg默认值.png太大 - 并将文件名更改为您选择的一个!)


Cam*_*tin 8

这个似乎符合要求,它是免费和开源的,甚至适用于 Windows :)

它甚至还有一些先进的东西,比如不是在特定的时间间隔盲目地选择任何帧,它可以选择足够接近但看起来不太模糊的帧,所以不要这样做:

截屏

您可以向它传递一个参数 ( -D6) 以便它执行以下操作:

更好的截图

另外我真的很喜欢没有边框,这样图像可以稍微大一点。


小智 8

ffmpeg 论坛有一个解决方案。

要制作多个屏幕截图并将它们放入单个图像文件(创建图块),您可以使用 FFmpeg 的图块视频过滤器,如下所示:

ffmpeg -ss 00:00:10 -i movie.avi -vf 'select=not(mod(n\,1000)),scale=320:240,tile=2x3' out.png
Run Code Online (Sandbox Code Playgroud)

这将在电影中寻找 10 秒,选择每 1000 帧,将其缩放为 320x240 像素并在输出图像 out.png 中创建 2x3 平铺。

原帖在这里 - http://ffmpeg.gusari.org/viewtopic.php?f=25&t=597


hrv*_*j3e 6

这个工具帮助了我 (2019-02) - 它得到了维护。许多选项 - 网格、质量、字体、颜色、边框、间隔……

https://github.com/amietn/vcsi

创建视频联系表。视频联系表是由排列在网格上的视频捕获缩略图组成的图像。

你只需要 ffmpeg 和 python。