動画 → GIF変換ツール
動画の一部を GIF アニメにします。先にその区間に合った色の表(パレット)を作るので、色の縞が出にくくなります。幅と FPS で画質と容量を調整できます。
対応する FFmpeg コマンド
現在の設定に対応するコマンドラインです。設定を変えるとリアルタイムで更新されます。
ffmpeg -ss 0 -t 5 -i input.mp4 -vf "fps=15,scale=320:-1:flags=lanczos,palettegen" palette.png
ffmpeg -ss 0 -t 5 -i input.mp4 -i palette.png -filter_complex "[0:v]fps=15,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif 視覚的なイメージ
※ 実際の結果はソース動画の長さ・複雑さで変わります(典型例の図解)
使い方
- 動画を選ぶMP4・MOV・WebM などを選びます(200MB まで)。長い動画は処理が重くなるので、短い区間に絞ります。
- 開始・終了時間を指定GIF にしたい範囲を秒で入力します(最大 60 秒)。10 秒以下にするとファイルが小さくなります。
- 幅と FPS を選択最初は幅 320px・15 fps になっています。この組み合わせで画質と容量のつり合いが取れます。
- 変換を実行「GIFに変換する」を押し、プレビューが出たらダウンロードします。
おすすめ設定
うまくいかないとき
GIF のファイルが大きすぎる
原因:区間が長い、FPS が高い、幅が大きい、のどれかです。
対処:区間を 5〜10 秒、幅を 320px、FPS を 10〜15 にします。
色が荒い・縞模様が出る
原因:GIF は 1 枚に 256 色までしか使えないため、グラデーションが苦手です。パレットは区間全体で 1 つなので、色の違う場面が混ざると色が足りなくなります。
対処:区間を短くして場面を 1 つに絞るか、MP4 のまま共有します。
動きが飛び飛びに見える
原因:FPS が低すぎるか、元の動画の FPS が低いです。
対処:FPS を 15 以上にするか、元の動画の FPS を確かめます。
よくある質問
GIF と MP4 はどちらが軽いですか?
同じ長さ・同じ見た目なら、ふつうは MP4 のほうがずっと小さくなります。送り先が MP4 を再生できるなら、MP4 で送るほうが軽く済みます。
透過 GIF は作れますか?
透過の設定はありません。ふつうの動画には透明な部分がないので、GIF も透明になりません。GIF の透明は「透明か不透明か」の 2 段階だけなので、半透明を含むアニメーションには APNG・WebP・WebM が向いています。
なぜ 30 秒以上を推奨していないの?
区間が長いほど GIF は大きくなり、処理に使うメモリも増えるためです。区間は最大 60 秒まで指定できます。
パレット生成(palettegen)とは?
まず区間の色を調べて、その動画に合った 256 色以内の色の表(パレット)を作り、次にその表を使って GIF を作ります(palettegen と paletteuse)。決まった色の表で変換するより、縞模様が出にくくなります。
スマホで作れますか?
はい。ただし元の動画が 50MB を超えると注意が表示されます。メモリが足りなくなりやすいので、区間を短くするか、先にトリムや圧縮をします。
GIF を Slack や Discord に貼ると重い/ぼやける
GIF は 256 色までなので、細かいグラデーションが苦手です。幅 320px・FPS 10〜15 を目安にします。それでも重いときは、GIF ではなく MP4 のまま送ります。
ループしない/1 回で止まる GIF を作りたい
このツールの GIF は、いつも繰り返し再生(ループ)になります。1 回だけ再生する GIF は、FFmpeg で作るときに `-loop 0` を `-loop -1` に変えると作れます。
元動画が縦動画でも GIF にできる?
はい。縦横比はそのままです。9:16 の縦長の動画を幅 320px にすると、高さは約 569px になります。縦に長すぎるときは、幅を 240px に下げます。
くわしい説明(設定の意味・制限・FFmpeg のコマンド)
設定の意味
使えるブラウザと制限
- 最大ファイルサイズ:200MB
- GIF は 256 色制限のため、グラデーションは苦手
- 区間は最大 60 秒(30 秒以下を推奨)
同じ処理を FFmpeg のコマンドで
ffmpeg -i input.mp4 -ss 5 -to 10 -vf "fps=15,scale=320:-1:flags=lanczos" -loop 0 output.gif ffmpeg -i input.mp4 -ss 5 -to 10 -vf "fps=15,scale=320:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" -loop 0 output.gif