文档章节

用ffmpeg 生成git 动图

中国扛把子
 中国扛把子
发布于 2018/09/12 18:14
字数 590
阅读 30
收藏 3

ffmpeg -ss 25 -t 10 -i D:\Media\bear.wmv -f gif D:\a.gif

意思是:将D:\Media目录下的源文件bear.wmv,从第25秒的位置开始,截取10秒长度的视频转成GIF文件,保存为D:\a.gif。

想要知道FFmpeg到底支持哪些格式吗?执行ffmpeg –formats即可。发现gif赫然在列,放心了

问题来了,你的源文件可能是1080P的高清视频,帧率可能还比较高。为了便于网络分享,GIF文件最好小一点。于是,我们需要使用-s参数来进行图像的缩放,使用-r参数来限制目标文件的帧率。命令行如下:

ffmpeg -ss 25 -t 10 -i D:\Media\bear.wmv -s 320x240 -f gif -r 1 D:\b.gif

把b.gif拖进浏览器预览,结果发现:虽然帧率降到了1 fps(从源视频里每隔一秒抽取一帧图像输出到目标文件),整个动画播放还是持续了10秒钟,看着很揪心!能不能在源视频跳帧的情况下同时提高GIF的播放速率呢(比如说在2秒内播完)?查了一遍FFmpeg的说明文档,似乎没有哪个参数可以快速达到这样的目的。也罢,那就分两步走吧:

首先,执行ffmpeg -ss 25 -t 10 -i D:\Media\bear.wmv -r 1 -s 320x240 -f image2 D:\foo-%03d.jpeg,从源视频中每秒钟抽取一帧图像,保存为一系列JPEG文件。然后,再执行ffmpeg -f image2 -framerate 5 -i D:\foo-%03d.jpeg D:\c.gif,将这一系列JPEG图像合成为帧率5 fps的GIF文件。Bingo!

上面提到,把GIF文件拖进浏览器可以进行预览。当然,使用ffplay.exe工具也是可以的——命令行:ffplay D:\a.gif。

 

 

p.s. 附送一条指令:截取视频内任意时间点(比如第16.1秒处)的一帧图像保存为JPEG文件:ffmpeg -ss 16.1 -i D:\Media\bear.wmv -s 320x240 -vframes 1 -f image2 D:\d.jpeg

在这里做一下记录,方便后面使用。

文章来自这位兄台的博客:https://blog.csdn.net/happydeer/article/details/45727227

 

 

 

 

 

© 著作权归作者所有

中国扛把子
粉丝 5
博文 44
码字总数 17631
作品 0
杭州
程序员
私信 提问
在pcDuino上学习OpenCV系列教程(一)安装ffmpeg

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编...

雨后的彩虹桥
2014/03/12
789
1
在pcDuino上学习OpenCV系列教程(一)安装ffmpeg

FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编...

酸酸苹果汁
2014/03/07
1K
0
ffmpeg安装第三方编码器(encoder)库,ffmpeg编码h264

ffmpeg安装第三方编码器(encoder)库 关键词:ffmpeg、编码h264、第三方encoder 安装好了ffmpeg后,如果你使用ffmpeg工具去把某个视频文件转成h264视频编码、mp3音频编码or其他ffmpeg自身不...

fz00x0zf
2018/06/27
0
0
ffmpeg安装第三方编码器(encoder)库,ffmpeg编码h264(完)

ffmpeg安装第三方编码器(encoder)库 关键词:ffmpeg、编码h264、第三方encoder 安装好了ffmpeg后,如果你使用ffmpeg工具去把某个视频文件转成h264视频编码、mp3音频编码or其他ffmpeg自身不...

Michael_Yuan
2012/07/23
0
2
如何在Windows上安装FFmpeg程序

如何在Windows上安装FFmpeg程序 由 Yutao 编辑 2 方法:下载FFmpeg在命令行中开启FFmpeg FFmpeg程序进行各种媒体格式的转换,从而它们可以在不同设备上播放。该程序只有命令行模式,因此将它安...

james_laughing
2014/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

简单了解 mvc 、mvp 与 MVVM 区别

mvc - 划分三个角色: 用户操作 view 层与 controller 层 mvp view 与 model 不发生联系,用户直接操作 p 层 mvvm view 与 model 双向绑定 react 中 v = f(s) 状态 到 视图的映射。改变状态就...

lemos
13分钟前
2
0
Python爬虫新手教程:手机APP数据抓取 pyspider

1. 手机APP数据----写在前面 继续练习pyspider的使用,最近搜索了一些这个框架的一些使用技巧,发现文档竟然挺难理解的,不过使用起来暂时没有障碍,估摸着,要在写个5篇左右关于这个框架的教...

计算机编程
14分钟前
2
0
巨杉Talk | 拒绝数据碎片化,原生分布式数据库灵活应对数据管理需求

2019年7月19-20日,以“运筹帷幄,数揽未来”为主题的DAMS中国数据智能管理峰会在上海青浦区成功举办。在DAMS峰会上,巨杉数据库为大家带来了题为“云架构下的分布式数据库设计与实践”的主题...

巨杉数据库
21分钟前
1
0
北京课工场教育科技公司喜获第八届中国软件杯企业突出贡献奖

百舸争流,奋楫者先;千帆竞发,勇进者胜。7月18 日, 第八届“中国软件杯” 大学生软件设计大赛决赛(简称“大赛”) 及颁奖典礼在江苏南京软件谷科创城圆满落下帷幕。课工场作为赛事支持单...

IFTNews
34分钟前
2
0
C++ *与&

*获取地址的值 &获取变量地址

colin_86
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部