Edited at

FFmpegで動画をGIFに変換


FFmpegとは

FFmpegは動画と音声を変換することのできるソフト

オプションがとても多く、細かい調整が可能

公式document

GIF画像やTwitter用の動画作成に便利です


mov → gif 変換後

cat.mov(46.1MB)



cat.gif(4.5MB)

output.gif


環境

Mac OS X ElCapitan 10.11.5


ffmpeg


ターミナル

$ brew install ffmpeg



TL;DR 結論

スマホサイズは以下でOKです


ターミナル

# mp4を 横幅320に合わせた 10fpsのgifに変換

$ ffmpeg -i base_file.mov -vf scale=320:-1 -r 10 output.gif


基本的な変換

-i インプットオプション


base_file.mp4をoutput.gifに変換

$ ffmpeg -i base_file.mp4 output.gif


綺麗なgifになるが、元動画の倍の容量になった


フレームレート

-r オプションで指定


10fps

$ ffmpeg -i base_file.mp4 -r 10 output.gif


指定しないとそのままのフレームレートで変換する模様

gifの容量を小さくするなら、fpsを調整すれば手っ取り早い

-r 10 → -r 5 にすれば容量も半分になります


ビットレート


横幅320

$ ffmpeg -i base_file.mp4 -vf scale=320:-1 -b:v 1.0M output.gif



リサイズ(固定比)

-vf オプションで指定

-vf scale=320:-1 で横幅320に合わせて縦幅を調整


横幅320

$ ffmpeg -i base_file.mp4 -vf scale=320:-1 output.gif


スマホ等はこれでおkかと。


リサイズ(サイズ指定)

-s オプションで指定


320x640の場合

$ ffmpeg -i base_file.mp4 -s 320x640 output.gif


簡略名で指定することも可能

-s qvga

-s vga
-s sqcif
-s qcif


Twitter用に動画を変換(mp4→mp4)

【公式仕様】

MP4(H264形式、AAC音声)をサポート。
サイズは最大512MB
長さは2分20秒以下
最小解像度: 32 x 32
最大解像度: 1920 x 1200(および1200 x 1900)
縦横比: 1:2.39~2.39:1の範囲(両方の値を含む)
最大フレームレート: 40fps
最大ビットレート: 25Mbps

$ ffmpeg -i base_file.mp4 -pix_fmt yuv420p -vcodec h264 -acodec aac -strict experimental output.mp4

サイズと長さが範囲内ならこれでいけるはず(アップまで試してないです)


元動画を圧縮

$ ffmpeg -i input.mp4 -c:v libx264 -c:a aac -s 1280x720 output.mp4


対応する拡張子

302 669 722 3g2 3gp a64 aa3 aac abc ac3 adf adp adts adx aea afc aif aifc aiff amf amr ams ans ape apl aqt art asc asf 

ass ast au avi avr avs bin bit bmp bmv brstm caf cavs cdata cdg cdxl cgi cif daud dbm dif diz dmf dnxhd dpx drc dsm dtk
dts dtshd dv dvd eac3 ext f4v fap far ffm ffmeta flac flm flv g722 g723_1 g729 gif gsm gxf h261 h263 h264 hevc ice ico
idf idx ircam isma ismv it itgz itr itz ivf jls jpeg jpg js jss latm lbc ljpg loas lvf m1v m2a m2t m2ts m2v m3u8 m4a m4v
mac mdgz mdl mdr mdz med mid mjpeg mjpg mka mkv mlp mmf mod mov mp2 mp3 mp4 mpa mpc mpeg mpg mpl2 mt2 mtm mts mvi mxf mxg
nfo nist nut ogg ogv okt oma omg opus paf pam pbm pcx pgm pgmyuv pjs png psm psp ptm pvf qcif ra rco rcv rgb rm roq rsd rso
rt s3gz s3m s3r s3z sami sbg sdr2 sf shn smi son sox spdif sph spx srt ssa stm sub swf tak tco thd ts tta txt ult umx v
vb vc1 viv vob voc vqe vqf vql vt vtt w64 wav webm wma wmv wtv wv xl xm xmgz xmr xmz y4m yop yu


参考

ffmpegの使い方

GithubやQiitaに載せるgif形式の動画を作成する方法

基本操作

オプションまとめ

動画圧縮する時ってみなさんどうしてます?


最後に

フリーソフトのConvertioなどでも変換可能ですが、

TwitterなどのSNSにあげるものは、FFmpegなどで公式上限までクオリティを上げた高品質な物を公開していきたいですね