前言
在github上,我们发现很多开源库的readme里都有gif文件,平时聊天我们也发现经常有些小伙伴发一些自制的gif文件。怎么把mov,MP4等其他格式的文件转为gif文件呢?网上有很多介绍各种软件的,大家可以随便Google一下,我今天给大家讲讲怎么用终端+命令行的方式实现mov等其他格式到gif的转换。
安装
在进行转换命令之前呢我们得先安装几个小东东。
homebrew
如果你已经装好了,这一步就当没看见。否则把下面两行脚本粘贴到你的终端,并执行。首先:
xcode-select --install
然后
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
不出意外的话,homebrew就装好了。
gifify
接下来就要安装我们真正的主角了。
首先,安装Node.js环境(如果以前已经装好了,这跳过这步):
brew install node
然后,安装FFmpeg
brew install ffmpeg --with-libass --with-fontconfig
再安装convert
brew install imagemagick --with-fontconfig
然后去pornel/giflossy下载最新的zip包,解压之后把和电脑匹配的执行文件放到/usr/local/bin
下面,你放其他地方也行,只要能保证它运行就可以。
如果你的网速不好,安装FFmpeg
和convert
时会很慢,我用了六七个小时。
最后安装gifify
npm install -g gifify
执行
gifify -h
如果没问题的话,会出现如下结果:
Usage: gifify [options] [file]
Options:
-h, --help output usage information
-V, --version output the version number
--colors <n> Number of colors, up to 255, defaults to 80
--compress <n> Compression (quality) level, from 0 (no compression) to 100, defaults to 40
--from <position> Start position, hh:mm:ss or seconds, defaults to 0
--fps <n> Frames Per Second, defaults to 10
-o, --output <file> Output file, defaults to stdout
--resize <W:H> Resize output, use -1 when specifying only width or height. `350:100`, `400:-1`, `-1:200`
--speed <n> Movie speed, defaults to 1
--subtitles <filepath> Subtitle filepath to burn to the GIF
--text <string> Add some text at the bottom of the movie
--to <position> End position, hh:mm:ss or seconds, defaults to end of movie
使用
进入到你要转换的文件的目录下,比如我的mov文件放在桌面上,执行
cd Desktop/
然后执行
gifify timer.mov -o timer.gif
OK,回到桌面,我们发现想要的gif文件已经在那了。timer.mov是你要转换的文件,timer.gif是转成功之后你要的文件。
通过gifify
命令,我们还可以在转换的同时,往gif里插入字幕、副标题等等,具体可以参考vvo/gifify。
写在最后
写这篇文章之前,查了不少资料,有些还比较详细,但因为都不是最新的,有些地方容易采坑,所以我特意重写了一篇,引用的文章我都会在参考链接里列出来。
本博客是原创,按照MIT License
发布,引用和转载请标明出处。