ffmpeg截图
来源:互联网 发布:qq自动群发软件 编辑:程序博客网 时间:2024/05/16 18:58
以下样例基于ffmpeg-0.10.4和ffmpeg-1.2.4均能测试通过
截图命令
-ss: 开始截图时间,有两种格式,一种是秒数,一种是hh:mm:ss[.xxx]
-i: 截图的源文件
-t: 截图时长,格式与-ss相同
-vframes: 截图帧数
-s: 图片宽高,格式WxH
-r: 指定帧率,即每秒钟输出的帧数:如果指定为25帧,则每秒截取25帧图;如果指定为1/2,则每秒截取半帧图,可达到两秒钟一张图的目的。
如果需要在指定时间段内均匀截取固定帧数的(指定了-vframes)图片,则使用该公式计算-r应该指定的值:固定帧数/时间段内的秒数
-filter:v: 设置视频的过滤条件:
-f: 指定输出格式
test-%02d.jpg: 支持格式化命名,输出的命名为: test-01.jpg, test-02.jpg, ...
除了输入与输出必须以外,以上其他参数均可相互组合使用
下面是设定了截图的起止时间(-ss和-t)之后并组合使用-vframes或者-r时的区别:
1. 组合使用-vframes来指定截取的帧数时,程序会按时间顺序截取够-vframes这么多的图片为止
2. 组合使用-r来指定每秒的输出帧数,程序则会在这段时间内按照均匀的时间分布来截取图片
Tips:
1. 当-ss设置得越大,程序需要找到位置(或者解码到指定的位置)的时间就越长
2. 以下是从ffmpeg官方文档中摘抄下来的:
'-ss position (input/output)'
When used as an input option (before -i), seeks in this input file to position...
When used as an output option (before an output filename), decodes but discards input until the timestamps reach position...
当-ss用作输入参数(存在于-i参数之前)时,程序会先找到输入文件的指定的这个位置,然后再进行后面的处理...
当-ss用作输出参数(存在于一个输出文件名参数之前)时,程序会先对输入文件进行解码并丢弃这些帧,直到找到指定的这个位置为止...
所以在截图时,如果*将-ss置于-i参数之前*,效率会远远高于作为输出参数时的效率:
视频时长为05:32.12,同样从00:01:30开始截图,第一条命令-ss在-i前,第二条反之
由上图明显可看出,截取同样的时间点的图片,将-ss置于-i参数之前,效率比置于-i后的效率高了不止一个数量级
截图命令
./ffmpeg -ss 00:05:00 -i h264_aac_20M.mp4 -t 2 -vframes 10 -s 128x76 -r 1/2 -filter:v "crop=320:240:10:10:keep_aspect=1" -f image2 test-%02d.jpg命令详解:
-ss: 开始截图时间,有两种格式,一种是秒数,一种是hh:mm:ss[.xxx]
-i: 截图的源文件
-t: 截图时长,格式与-ss相同
-vframes: 截图帧数
-s: 图片宽高,格式WxH
-r: 指定帧率,即每秒钟输出的帧数:如果指定为25帧,则每秒截取25帧图;如果指定为1/2,则每秒截取半帧图,可达到两秒钟一张图的目的。
如果需要在指定时间段内均匀截取固定帧数的(指定了-vframes)图片,则使用该公式计算-r应该指定的值:固定帧数/时间段内的秒数
-filter:v: 设置视频的过滤条件:
crop: 裁剪,crop=output_width:output_height:x:y:keepaspect=1,五个参数分别为:
output_width: 裁减之后输出视频的宽output_height: 裁减之后输出视频的高x: 在输入视频上开始裁减的横坐标y: 在输入视频上开始裁减的纵坐标keep_aspect: 1表示保持裁剪后输出的纵横比与输入一致,0表示不保持
-f: 指定输出格式
test-%02d.jpg: 支持格式化命名,输出的命名为: test-01.jpg, test-02.jpg, ...
除了输入与输出必须以外,以上其他参数均可相互组合使用
下面是设定了截图的起止时间(-ss和-t)之后并组合使用-vframes或者-r时的区别:
1. 组合使用-vframes来指定截取的帧数时,程序会按时间顺序截取够-vframes这么多的图片为止
2. 组合使用-r来指定每秒的输出帧数,程序则会在这段时间内按照均匀的时间分布来截取图片
Tips:
1. 当-ss设置得越大,程序需要找到位置(或者解码到指定的位置)的时间就越长
2. 以下是从ffmpeg官方文档中摘抄下来的:
'-ss position (input/output)'
When used as an input option (before -i), seeks in this input file to position...
When used as an output option (before an output filename), decodes but discards input until the timestamps reach position...
当-ss用作输入参数(存在于-i参数之前)时,程序会先找到输入文件的指定的这个位置,然后再进行后面的处理...
当-ss用作输出参数(存在于一个输出文件名参数之前)时,程序会先对输入文件进行解码并丢弃这些帧,直到找到指定的这个位置为止...
所以在截图时,如果*将-ss置于-i参数之前*,效率会远远高于作为输出参数时的效率:
视频时长为05:32.12,同样从00:01:30开始截图,第一条命令-ss在-i前,第二条反之
由上图明显可看出,截取同样的时间点的图片,将-ss置于-i参数之前,效率比置于-i后的效率高了不止一个数量级
0 0
- Ffmpeg截图
- ffmpeg截图
- Ffmpeg截图
- ffmpeg截图
- ffmpeg截图
- ffmpeg视频截图
- 使用 FFMPEG 截图
- ffmpeg截图命令
- ffmpeg --截图命令 (
- Ffmpeg视频截图代码
- FFmpeg截图和录像
- Linux 调用FFmpeg截图
- ffmpeg 直播流截图
- FFmpeg按桢截图
- ffmpeg按桢截图
- mplayer+ffmpeg 组合截图
- ffmpeg 截图 视频信息
- ffmpeg视频转换及截图
- c++primer学习之路(4)——string和vector
- php上传xls文件导入到mysql数据表
- 总结jq 出现隐藏的动态样式
- Chapter 5
- HDU2029 Palindromes _easy version【回文串】【水题】
- ffmpeg截图
- Git 分支工作流程
- 数组
- 【Zendstudio】如何利用zendstudio新建 或导入php项目
- JVM简介
- 常用shell脚本操作
- 超过130个你需要了解的vim命令
- dreamweaver快捷键冲突修改emmet
- 在AppServ上搭建WordPress环境