如何使用 ffmpeg 从视频中提取帧

如何使用 ffmpeg 从视频中提取帧

我有一个视频,我想提取三十五该视频的第 -帧。

如果可能的话,我希望它是一个 png 图像。

我知道有很多这样的问题,但我找不到使用帧号的解决方案。

答案1

使用select筛选

ffmpeg -i <input> -vf "select=eq(n\,34)" -vframes 1 out.png

计数从 0 开始,因此第 35 个 = n 值为 34。

答案2

两种快捷但简单的方法:

使用FFmpeg带有 seek 选项的可执行文件。您需要先将其转换为时间,例如,如果我想要第 150 帧,而我的视频是 29.97 FPS,则命令将是ffmpeg -ss 00:00:05.01 -i myvideo.avi -frames:v 1 myimage.jpg。这可能略有不准确。要按精确帧搜索,您需要使用 FFmpeg 库C++

另一种“黑客”方式是使用VLC 媒体播放器. 检查菜单视图 ->高级控制. 暂停视频并单击逐帧按钮 34 次。

相关内容