前言
在github上,我們發(fā)現(xiàn)很多開源庫的readme里都有g(shù)if文件,平時聊天我們也發(fā)現(xiàn)經(jīng)常有些小伙伴發(fā)一些自制的gif文件。怎么把mov,MP4等其他格式的文件轉(zhuǎn)為gif文件呢?網(wǎng)上有很多介紹各種軟件的,大家可以隨便Google一下,我今天給大家講講怎么用終端+命令行的方式實現(xiàn)mov等其他格式到gif的轉(zhuǎn)換。
安裝
在進(jìn)行轉(zhuǎn)換命令之前呢我們得先安裝幾個小東東。
homebrew
如果你已經(jīng)裝好了,這一步就當(dāng)沒看見。否則把下面兩行腳本粘貼到你的終端,并執(zhí)行。首先:
xcode-select --install
然后
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
不出意外的話,homebrew就裝好了。
gifify
接下來就要安裝我們真正的主角了。
首先,安裝Node.js環(huán)境(如果以前已經(jīng)裝好了,這跳過這步):
brew install node
然后,安裝FFmpeg
brew install ffmpeg --with-libass --with-fontconfig
再安裝convert
brew install imagemagick --with-fontconfig
然后去pornel/giflossy下載最新的zip包,解壓之后把和電腦匹配的執(zhí)行文件放到/usr/local/bin下面,你放其他地方也行,只要能保證它運(yùn)行就可以。
如果你的網(wǎng)速不好,安裝FFmpeg和convert時會很慢,我用了六七個小時。
最后安裝gifify
npm install -g gifify
執(zhí)行
gifify -h
如果沒問題的話,會出現(xiàn)如下結(jié)果:
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
使用
進(jìn)入到你要轉(zhuǎn)換的文件的目錄下,比如我的mov文件放在桌面上,執(zhí)行
cd Desktop/
然后執(zhí)行
gifify timer.mov -o timer.gif
OK,回到桌面,我們發(fā)現(xiàn)想要的gif文件已經(jīng)在那了。timer.mov是你要轉(zhuǎn)換的文件,timer.gif是轉(zhuǎn)成功之后你要的文件。
通過gifify命令,我們還可以在轉(zhuǎn)換的同時,往gif里插入字幕、副標(biāo)題等等,具體可以參考vvo/gifify。
寫在最后
寫這篇文章之前,查了不少資料,有些還比較詳細(xì),但因為都不是最新的,有些地方容易采坑,所以我特意重寫了一篇,引用的文章我都會在參考鏈接里列出來。
本博客是原創(chuàng),按照MIT License發(fā)布,引用和轉(zhuǎn)載請標(biāo)明出處。