使用ffmpeg很简单,它可以每N秒输出一帧画面,无需额外的脚本。如果要输出为图像序列,只需使用myimage_%04d.png
或类似的输出。%0xd
位会被转换为x
位长的零填充整数–我举的例子是输出为
myimage_0000.png
, myimage_0001.png
, myimage_0002.png
你可以使用很多静态图像格式, png, jpeg, tga, 等等 (完整的列表见ffmpeg -formats
).
好了,现在我们知道了如何将电影输出为一连串的图像,但如果我们不想输出每一帧图像呢?
诀窍是使用-r n
选项将输出的帧率改为我们想要的任何格式,其中n
是每秒的帧数。每秒钟1帧是-r 1
,每四秒一帧是-r 0.25
,每十秒一帧是-r 0.1
,以此类推。
所以综合起来,每四秒保存一帧input.mov
到output_0000.png
、output_0001.png
等是这样的:
ffmpeg -i input.mov -r 0.25 output_%04d.png
注意,-r 0.25
选项放在-i input.mov
部分之后,因为它是控制_输出的帧率。如果你把它放在输入之前,它就会把输入文件当作具有指定帧率的文件。
将%xd改为你所需要的任何数字,例如,如果命令将创建超过10,000帧,则将%04d
改为%05d
。这也适用于图像序列的输入文件。阅读更多 这里 .
Windows用户 。在命令行中使用%
例如:ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
在CMD和BAT脚本中使用%%
例如:ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
所以在脚本中使用双倍%%
,在交互式命令行中使用单倍%
。在任何一种情况下弄错都会产生错误。
mplayer -vo jpeg -sstep 5 file.avi
将每5秒保存一帧为jpeg文件。
然而,它不会在文件结束时停止,它会继续生成最后一帧的副本。为了避免这种情况,请使用其他播放器或mplayer找到视频的持续时间(秒)。
mplayer -vo null -ao null -frames 0 -identify file.avi
寻找类似 “ID_LENGTH=147. 00 "的行。
从长度中减去2,并将此值用于-endpos
选项。例如,对于一个147秒的视频。
mplayer -vo jpeg -sstep 5 -endpos 145 file.avi
使用 ffmpeg
,您可以执行以下命令。
ffmpeg -ss 4 -i input.avi -s 320x240 -frames:v 1 output.jpg
这条命令在视频的第4秒生成一个320×240大小的JPG缩略图。把它放在一个脚本中,改变时间和文件名就可以了。
更多信息。在视频中每隔X秒创建一个缩略图 更多信息:
如果你正在寻找一种联系表,如果你使用的是类似Unix的操作系统,你可以使用这个精心设计的脚本,调用到点 视频联系表/*NIX ,简称vcs 。
在后台,它还使用ffmpeg
(默认)或mplayer
,因此可以处理很多视频格式。它自动从电影中捕捉静止图像,并将其合成为带有页眉和页脚的图像。您可以选择您想要的捕捉次数,或者选择它们之间的时间差。
对于10分钟的间隔,调用是这样的。
vcs -i 10m input.avi
查看完整的命令行选项列表以获得其他的调整。
这里是一个联系表的例子,取自主页。
在VLC 1.1.0及以上版本中,你可以使用场景视频滤镜:
vlc C:\video\to\process.mp4 --rate=1 --video-filter=scene --vout=dummy --start-time=10 --stop-time=11 --scene-format=png --scene-ratio=24 --scene-prefix=snap --scene-path=C:\path\for\snapshots\ vlc://quit
以上每24帧中保存1帧(–场景比例=24),从00:00:10开始,到00:00:11结束。
刚刚测试并确认在全新的Windows 8系统上使用VLC 2.0.3可以工作(我没有额外的视频插件或软件)。
你也可以试试这个
从VLC命令行……
vlc “C:\YOUR\file/path/file.avi” -V image –imag-out-prefix=capname –imag-out-ratio=60
file. avi是你要抓取的视频,capname是保存的图像的前缀,你可能想玩玩这个比例(60意味着60张图像中有1张被抓取),你可以添加更多的命令,例如–image-out-format jpeg会将你的盖帽保存为jpegs而不是pngs,–snapshot-path让你选择保存盖帽的位置。 以上来源。