动态GIF图片现在复苏了,不少在线分享和社交网络网站都开始支持动态GIF图片,由于在消费和共享上的容易,GIF的动画已经成为主流互联网文化的一部分了。下面介绍一下在Linux使用ffmpeg把自己旅行时录制的mp4格式的视频文件转换gif动态图。
首先,安装ffmpeg,我的操作系统是Ubuntu 12.04 ,指令是下面:
$ sudo apt-get install ffmpeg
如果你的操作系统别的Linux发行版,请参考How to install FFmpeg on Linux
后来发现不行,那个网站老是fetch不到,一直404,只好下源代码编译安装
使用git克隆ffmpeg源代码的地址:
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
另外,ffmpeg编译时需要使用yasm,如果系统中没有安装,可以通过下面的命令来安装:
sudo apt-get install yasm
上述的编译工具安装好后,就可开始编译ffmpeg了。
ffmpeg是采用autoconfig和automake等工具自动生成makefile,然后再通过make进行编译,具体的编译的过程如下:
- 使用./configure产生makefile文件
- 使用make进行编译
- 使用sudo make install将ffmpeg安装到系统中,因为这个需要需要root权限。
再装个ImageMagick,发现原来已经有了,如果没有就看这里安装ImageMagick
弄个人的slam dunk视频,只有4秒,mp4格式的
$ ffmpeg -t 4 -ss 00:00:00 -i slam.mp4 out1.gif
-t是时间长度,-ss是开始时间 ,这样独立的帧就输出了,时间有点长。虚拟机比较慢
最后一步,
$ convert -delay 1x20 -loop 0 out*.gif am.gif
“-delay”是控制动态速度的选项。这个选项表示在显示下一帧画面前需要等待的秒数:帧数/每秒帧数 。”-loop 0”选项表示动画的无限次循环。如果你愿意,你可以指定”-loop N”让动画只重复N次。
需要调节大小
convert am.gif -resize 50% small-am.gif