拍摄电影快照的程序?

拍摄电影快照的程序?

是否有任何程序可以让我指定视频文件的一部分(avi、mpeg、mp4...)并每隔某秒/分钟拍摄“快照”,并将其存储为一系列图像文件(例如 jpeg)?例如,选择 0h45m 到 1h00m 之间的电影部分,并每 30 秒拍摄一次“快照”。

它可能是视频播放器(例如 VLC)的一部分或插件......重点是我需要自动拍摄快照的东西,而不是手动拍摄快照。

此外,是否有任何好的程序可以将此类一系列图像文件转换为动画 GIF 或 PNG 文件? (如果快照程序可以选择将快照保存为动画 GIF/PNG,那当然是一个额外的好处。)

答案1

您可以用来ffmpeg执行此操作。有ffmpeg 网站上有几个例子

这里有几个:

  1. 这将每分钟创建一个缩略图,名为img001.jpg, img002.jpg, img003.jpg, ... (%03d表示每个缩略图的序号应使用 3 位数字进行格式化)

    $ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
    
  2. 这将每 10 分钟创建一个缩略图,名为thumb0001.bmp, thumb0002.bmp, thumb0003.bmp, ...

    $ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
    

如果你想把它们制作成短视频,你可以再次寻求帮助ffmpeg。讨论于他们网站的这个页面

这里还有几个例子:

  1. 此处,每个图像的持续时间为 5 秒(每秒 1/5 帧的倒数)。通过告诉 FFmpeg 将输入文件的 FPS 选项(每秒帧数)设置为某个非常低的值,我们使 FFmpeg 在输出处重复帧,从而实现在屏幕上显示每个图像一段时间:

    $ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
    
  2. 如果您没有按系列(img001.jpgimg002.jpgimg003.jpg)编号和排序的图像,而是随机的图像串,则 ffmpeg 还支持 bash 样式的通配符(* 代表任意数量的任意字符):

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
    

或者对于 png 图像:

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4

要将生成的视频制作为动画 gif,您可以使用他的 SO Q&A 中概述的步骤,标题为:如何使用ffmpeg从avi生成gif?:

$ ffmpeg -i video.avi -t 10 out%02d.gif

然后:

$ gifsicle --delay=10 --loop *.gif > anim.gif

这是该工具的链接gifsicle

答案2

也开始了,ffmpeg但 @slm 打败了我:)

无论如何,您还可以用来mplayer进行快速而简单的转储。例如:

mplayer -nosound -ss 45:00 -endpos 15:00 -vo png:z=7 -sstep 30 your_vid.mp4
  • -ss是起始位置。
  • -endpos是持续时间。
  • -vo需要输出驱动器。用于mplayer -vo help获取列表。许多发行版还在大多数 mplayer 选项上提供制表符补全功能:mplayer -voTabTab
  • -sstep 30表示每帧之间间隔 30 秒。

开始和结束位置:

<[[hh:]mm:]ss[.ms]|size[b|kb|mb]>

由于需要进行大量计算和缓冲,因此不是 100% 准确,但通常足够接近。


它还有一个 gif89a 驱动程序,但质量不是最好的(与转储图像、使用converteg 转换和编译视频相比gifsicle)。你当然可以玩它。更适合从电影中制作快捷方式,如 gif 所示的头像:

mplayer -ao null -ss 10:00 -endpos 5 -vo gif89a:fps=5.3 -vf palette,softskip,scale=240:135 videofile.ext

然后,您还可以通过以下方式指定输出文件:

-vo gif89a:fps=4.9:output=sample.gif

非常侧面,完全不相关,但是为了显示 的范围-vo,是 ASCII 格式:

mplayer -vo aa -monitorpixelaspect 0.5 video.mp4

最大化输出窗口并后退 5 步。

相关内容