我想尝试从一个超过6分钟长的大型MPEG4文件(20.1MB)中提取第n帧。但是,如果我尝试这样做:
convert video.mp4 *.png
我的电脑完全死机了。所以我想尝试通过只从MPEG4文件中提取每n帧来节省一些时间和计算能力,而不是提取超过8000张图像。如何才能做到这一点?
我会用" ffmpeg"来做这个。以X间隔提取PNG图像的命令可以像下面这样简单…
ffmpeg -i input.mp4 -r 1 out%04d.png
使用-r 1
选项将输出帧率设置为每秒1。假设输入视频的帧率为每秒25帧,则-r 1
选项大约每25帧输出一次。根据输入的帧率计算所需的间隔。例如,要获得大约每10帧,使用-r 2.5
。
本例中的输出文件名包含%04d
,它创建一个带有四位数字的编号序列,其中填充了前导零。
VLC Media player可以这样做:
-
以Administrator身份运行VLC
-
单击VLC中的工具-首选项。
-
在"显示设置"下,点击"全部"。
-
在"视频"下选择"滤镜",但不要展开它。勾选"场景视频过滤器"复选框。
-
展开"滤镜",选择"场景滤镜",
-
给出输出路径
-
设置"录音比率"框的例子10,20等
-
单击"保存"。
-
点击媒体-打开视频,找到您的视频。耐心地让事情发展。VLC将自动捕获帧并保存到输出路径。
-
禁用:单击工具-首选项。在"显示设置"下,点击"全部"。在"视频"下选择"滤镜"。取消选中"场景视频过滤器"。单击"保存"。