《简记FFmpeg取帧的用法》
作为简单的视频流截图的工具,FFmpeg再合适不过了,当然它的功能是很强大的,也可以截取音频,视频格式转换等等,这里只记录一下使用ffmpeg命令从视频中取帧的常用参数,以及一个用python调用命令行截取视频的小脚本,我想隔几秒取一帧图像,搜索发现网上给出的答案都比较复杂,所以这里给出一个简单有效的参数设置方案。
Key Words:视频取帧、FFmpeg
Beijing, 2020
作者:RaySue
Code:
前言
在一些视频任务中,比如追踪,或行为识别等,往往需要从视频中提取指定帧,然后进行处理增强和训练。提取帧的方法有很多,不过在一些对时间限制比较大的场合,为了提高速度,会采用ffmpeg。
视频取帧
参数介绍
- -f 类型 image2 表示图片
- -r 一秒截取多少张 (如果这里指定了 -r 那么后面 -vf 指定隔几秒取帧就无效了)
- -q:v2 表示截图画面的质量
- -vf fps=1/20 每隔20秒截取一张
示例代码
示例程序隔十秒取一帧
import os
def grab_images_from_video(video_path="", save_dir=""):
os.system('ffmpeg -i ' + video_path + ' -f image2 -q:v 2 -vf fps=fps=1/10 ' + save_dir + '/image-%3d.jpg')
剪视频
参数介绍
- i :指定输入视频的路径
- ss 时间:从哪个时间点开始
- to 时间:从哪个时间点结束
- c:是视音频的格式
- copy:是指输出视频直接copy输入视频
- cut.mp4:指输出视频的地址,例如:C:\cut.mp4
实例代码
ffmpeg -i video.mp4 -ss 00:03:00 -to 00:02:00 -c copy cut.mp4