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获得帮助。

相关推荐
全栈探索者1 天前
从素材到成片:ffmpeg 拼接、转码与字幕,一条流水线交付
macos·ffmpeg·aigc·comfyui·视频剪辑
扶尔魔ocy2 天前
【QT+FFmpeg】知识点编目及传送门
qt·ffmpeg
甜到心里的蛋糕3 天前
AI 生成 MV 音频异响排查:频谱定位、片段替换与 Nginx 缓存
人工智能·python·nginx·ffmpeg·音视频·音频处理
白搞电子4 天前
ESP-Mosaico 音乐驱动动画:节拍检测、RMS 包络与预制动作编排
ffmpeg
FlightYe4 天前
视界原理之3D视频(三):解码和显示
android·linux·3d·ffmpeg·音视频·android runtime
FlightYe4 天前
linux系统编程(十七):内存管理基础
android·linux·ffmpeg·音视频·android runtime
信可维4 天前
用无头 Chrome 逐屏截图 + ffmpeg 拼竖版视频:1080×1920 全流程与 4 个坑
chrome·ffmpeg·音视频
FlightYe4 天前
音视频修炼之容器与协议(二):HLS和DASH流媒体
android·linux·ffmpeg·音视频·android runtime·dash
GreenHandBruce5 天前
基于Qt 6.12.0 + FFmpeg 9.0.2的4k视频播放器
qt·ffmpeg·音视频
Android系统攻城狮5 天前
Linux FFmpeg深度解析之avformat_open_input调用流程与实战(一)
linux·运维·ffmpeg·车载音视频·ffmpeg音视频·音视频进阶手册