ffmpeg 截图 1帧怎么设置几秒截图

posts - 169,&
comments - 33,&
trackbacks - 0
由于项目的需求, 我需要对单个视频进行截图. 以前我使用的ffmpeg命令是这样的:
ffmpeg -i input.mkv -ss 00:10:00 -f image2 output.jpg
&但是这个命令会花费相当长的时间. 对一个清晰的或者较大的视频文件进行操作, 会花费半分钟以上. 截图的时间越往后, 花费的时间也越长. 更为悲剧的是, 我的Nginx服务器会在等待15s之后返回 "504 Bad Gateway" 的错误, 尽管后台的截图操作仍然在进行中! 这真的不能忍受, 而且会给用户带来不好的体验. 试着上网搜了一下解决方案, 看到了博客 [1] . 大意是说, 出现这种情况的原因是由于参数的位置放置不正确造成的 "-ss" 要放在第一个参数位置. 调整它们的位置之后我再次尝试 (&test1.flv是一个h264编码的高清视频, 总时长为"00:04:11.37", 命令中 "-ss 00:02:06" 相当于在总长度的一半处截图) :
$ time ffmpeg -ss 00:02:06 -i test1.flv -f image2 -y test1.jpg
&奇迹出现了, 这一次用时不超过一秒钟:
&真的是大大缩短了截图时间!!.
至于原因是什么, 我也搞不懂, 也许是像 [1] 中所说的: "可能是ffmpeg看到第一个参数为 -ss的时候,马上跳转到时间线为指定的地方然后再打开视频文件进行处理,而如果最后看到的参数是-ss,先打开视频,然后慢慢往后遍历,直到遍历到时间为指定处. 通过观察ffmpeg的输出发现,实际处理的时候几乎就是这样。"
阅读(...) 评论()随心日记(4)
ffmpeg按桢截图:
Java代码&&
ffmpeg&-ss&10&-i&input.flv&-y&-f&image2&&-vframes&100&-s&352x240&b-%03d.jpg&&
Java代码&&
&参数解释:
-i& 输入文件
-f& 生成图片格式
-ss 开始截图时间 seconds or in&hh:mm:ss[.xxx] 如果截图开始时间越接近篇尾,所花费的时间就会越长
-vframes& 截图帧数 或者 使用 -t : 截图时长 seconds, or&hh:mm:ss[.xxx]
-s& 图片宽高比
b-%3d.jpg 格式化文件命名,会生成 b-001.jpg,b-002.jpg 等。
&注意:把-ss 10放到第一个参数的位置,速度比放到放到其他位置快,且不会出现如下错误
“[buffer @ 0x217c550] Buffering several frames is not supported. Please consume all available frames before adding a new one.”
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:264467次
积分:4590
积分:4590
排名:第5423名
原创:177篇
转载:247篇
评论:14条
(3)(1)(5)(1)(5)(2)(1)(10)(7)(21)(6)(28)(1)(1)(3)(13)(14)(1)(10)(6)(11)(28)(2)(10)(7)(4)(8)(1)(5)(9)(26)(8)(112)(12)(36)(3)(3)(1)欢迎来到,站长联系方式QQ:
当前位置: &
ffmpeg 截图插入关键帧
使用ffmpeg的最大好处就是可以获取影片的信息,这样从返回信息做很多事情,而不用手工完成了。
ffmpeg -i test.flv -y -f
-ss 10 -vframes 1
同样,对于flv的任意拖拽需要影片中插入关键帧,我们使用yamdi或flvtool2为你的flv视频添加关键帧
yamdi -i s.flv -o t.flv
flvtool2 -U s.flv
相关的文章
2017年四月
10111213141516
17181920212223
24252627282930

我要回帖

更多关于 ffmpeg 截图 命令 的文章

 

随机推荐