使用ffmpeg按帧率18fps截取2320x3200分辨率视频
需积分: 20 157 浏览量
更新于2024-08-04
收藏 1KB TXT 举报
FFmpeg是一款强大的跨平台多媒体处理工具,特别在视频和音频的编码、解码、流处理以及转换方面表现出色。在这个示例中,我们主要关注如何使用ffmpeg根据特定帧速率、分辨率和时间间隔来截取视频帧,并保存为图片。
首先,使用`ffprobe`命令来获取视频的基本信息,如总帧数(`nb_frames-of`)和总时长(`duration-of`),这对于预估处理需求很有帮助。`ffprobe`是一个用于分析媒体文件的工具,通过参数`-v quiet`确保输出简洁。
接下来,具体到截取帧的操作,有两个不同的例子:
1. `ffmpeg -i E:\upload\test.avi -vf "select=between(n,84,208)*not(mod(n,4)) -vsync 0" ./pkl/image_%05d.jpg` 这段命令表示从视频中选择84帧到208帧之间的帧,且只输出非整数倍帧数,即每隔4帧提取一帧,这样可以避免连续的帧被选取。`-vsync 0`是为了防止在不同帧速率下可能出现的画面跳动。输出的图片文件名采用`image_%05d.jpg`格式,其中 `%05d`是占位符,用于自动生成连续编号的图片。
2. 另一个例子是 `ffmpeg -i E:\upload\test.avi -vf "select=(gte(t,10))*(isnan(prev_selected_t)+gte(t-prev_selected_t,10)) -vsync 0 E:\upload\image_%05d.jpg"`,这里每秒提取视频中的一帧,且只有在当前帧是第10帧或之后,且前一帧不是已选择的第10帧的情况下才会选取。这种方式可能用于创建时间点相关的关键帧或者有特定间隔的帧序列。
然后,我们看到另一种截取帧的方法,使用`-f image2`和`vffps`选项来控制帧率。例如:
- `-f image2 -vf fps=1/18 -qscale:v 2 E:\upload\img%04d.jpg` 每18帧取一帧,图像质量通过`qscale`调整,图片命名格式为`img%04d.jpg`,这表示每18秒取一张图,图片数量可能会非常多。
- `-f image2 -vf fps=1/5 -qscale:v 2 -s 3200x2320 E:\upload\img%04d.jpg` 这里设置每5秒取一帧,同时指定了输出图片的固定分辨率3200x2320像素。
总结来说,这些命令展示了ffmpeg在视频帧提取方面的灵活性,包括基于帧数范围、时间间隔、帧率和分辨率等多种方式来处理视频帧。对于需要批量处理视频或创建特定格式输出的场景,ffmpeg提供了强大的功能和配置选项。
2017-10-02 上传
413 浏览量
2019-05-24 上传
2009-04-03 上传
2013-12-10 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_40847936
- 粉丝: 0
- 资源: 1
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度