YOLO视觉检测应用标注篇(三)
视频帧提取
上一篇使用SAM2中介绍了对于视频进行识别,事实上需要先采样为图片。
因此这一篇介绍下视频帧的提取。
工具
我使用的是FFmpeg。
相信也有其他的工具,请网上搜索其他的教程。
下载
FFmpeg官网
官网提供Linux、Mac、Windows多种平台以及多种安装方式的文件下载。
手册
更加详细的内容,请参考:
官方手册
提取
基础帧提取
1 |
|
参数说明:
- -i input.mp4: 输入视频文件
- -vf “fps=30”: 每秒提取30帧(可根据需求调整数值)
- frames/frame_%04d.png: 输出路径及文件名格式(自动生成0001,0002…序列)
输出文件示例:
1 |
|
按时间范围提取
即精确片段提取
1 |
|
参数说明:
- -ss 00:01:30: 从1分30秒开始提取
- -t 5: 提取持续5秒
- 输出为JPG格式以节省存储空间(默认质量75,可通过-qscale:v调整)
关键帧提取
避免重复帧
1 |
|
优势:
- 仅提取I帧(关键帧),减少冗余图像
- 适用于快速定位特征点
分辨率适配
兼容模型输入
1 |
|
功能:
- 将宽度缩放到1024px,高度按比例自动调整
- 降低抽帧率为15 FPS
拓展 添加锐化滤镜提示清晰度:1
-vf "scale=1024:-1,unsharp=3:3:1.0"
图像质量控制
优化文件体积
1 |
|
参数说明:
- -qscale:v 2: JPG质量等级(1-31,值越小质量越高)
推荐: - 关键帧:使用PNG无损格式
- 普通帧:JPG质量等级3-5
注意事项
- 注意目录管理:
1
mkdir frames # 提前创建输出目录
- 文件命名
使用%04d补零格式(如frame_0001.png)保证文件顺序正确 - 性能优化
添加多线程加速参数:-threads 4
验证输出
- 检查首尾帧
1
ls frames/frame_0001.png frames/frame_$(ls frames | wc -l).png
- 统计总帧数
1
ls frames/*.png | wc -l
Remark
建议先用短视频测试参数效果,再处理完整视频
YOLO视觉检测应用标注篇(三)
http://kevin.zone.id/2025/04/19/ffmpeg/