录屏
ffmpeg -y -t 20 -vframes 30 -r 30 -video_size 1920*1080 -c:v libx264 output.mp4
提取视频帧
提取单帧
从视频中提取某一特定时间点的单帧,可以使用以下命令
ffmpeg -i input_video.mp4 -ss 00:01:30 -vframes 1 output_image.jpg
提取多帧
若要每隔一段时间(比如每隔5秒)提取一帧,可以使用select滤镜:
ffmpeg -i input_video.mp4 -vf "select='not(mod(n\,120))'" -vsync vfr output_%03d.jpg
这里,select='not(mod(n\,120))
意味着只选择每120帧的帧(假设视频的帧率为30fps,则大约是每5秒提取一帧)。
vsync vfr
保证了输出帧率与输入视频的实际帧率不强制同步,而是根据选择的帧来。
output_%03d.jpg
指定了输出图片的格式,其中 %03d
是一个占位符,会自动递增文件名(如 output_001.jpg, output_002.jpg
等)
提取全部帧
ffmpeg -i input_video.mp4 -vsync 0 output_%04d.png
使用 -vsync 0
可以按照视频的原始帧率输出所有帧,而不进行重复或丢帧处理
output_%04d.png
表示输出的每一帧将以PNG格式保存,且文件名自动递增
这里使用了四位数字 (%04d)
以适应更多的帧数