ffmpeg 从视频文件抓取图片 (帧)的用法

要从视频文件中提取多个图片帧,你可以使用ffmpeg命令行工具。以下是一些常用的方法来通过ffmpeg提取图片帧。

按帧数提取

如果你想从视频中每隔一定数量的帧提取一张图片,可以使用以下命令:

bash

ffmpeg -i input.mp4 -vf "select=not(mod(n,10))" -vsync vfr -q:v 2 output_%03d.jpg

这里的-i input.mp4指定了输入文件。-vf "select=not(mod(n,10))"表示选取每10帧中的第一帧(n代表当前帧编号,从0开始)。注意反斜杠\是为了转义逗号,因为它在shell中有特别的意义。-vsync vfr表示变帧率视频同步。-q:v 2设置了JPEG的质量级别,数字越小,图片质量越高(范围是2到31)。output_%03d.jpg是输出文件名的模式,%03d表示数字部分会被填充为三位数(例如001、002等)。

按时间提取

如果你想基于时间间隔提取图片,可以使用以下命令:

bash

ffmpeg -i input.mp4 -vf fps=1/5 output_%03d.jpg

上述命令将在每5秒钟提取一帧。fps=1/5表示每秒生成1/5帧。

提取特定时间点的帧

如果你只对特定时间点的帧感兴趣,可以单独提取它们:

bash

ffmpeg -i input.mp4 -ss 00:00:05 -frames:v 1 output.jpg

这个例子中,-ss 00:00:05设定了开始时间(小时:分钟:秒),而-frames:v 1告诉ffmpeg提取一帧视频。output.jpg是输出文件的名称。

注意事项

所有上述命令都假定你的工作目录下有名为input.mp4的视频文件。

输出的图片格式由文件扩展名确定,修改输出文件名的扩展名即可更改格式(如PNG、BMP等)。

命令中的参数可以根据需要调整,比如调整JPEG的质量或者改变帧提取的频率。

ffmpeg的行为可能会根据你的系统和ffmpeg版本略有不同,请确保查看ffmpeg文档或使用ffmpeg -h获得帮助。

相关推荐
daidaidaiyu5 小时前
FFmpeg 关键的结构体
c++·ffmpeg
扶尔魔ocy14 小时前
【QT window】ffmpeg实现录音功能之无损格式--PCM
ffmpeg·pcm
止礼16 小时前
FFmpeg8.0.1 源代码的深入分析
ffmpeg
小曾同学.com16 小时前
音视频中的“透传”与“DTS音频”
ffmpeg·音视频·透传·dts
vivo互联网技术16 小时前
数字人动画云端渲染方案
前端·ffmpeg·puppeteer·web3d
止礼18 小时前
FFmpeg8.0.1 编解码流程
ffmpeg
qs701618 小时前
c直接调用FFmpeg命令无法执行问题
c语言·开发语言·ffmpeg
止礼18 小时前
FFmpeg8.0.1 Mac环境 CMake本地调试配置
macos·ffmpeg
简鹿视频1 天前
视频转mp4格式具体作步骤
ffmpeg·php·音视频·实时音视频