動画を GIF に変換
動画の短い一場面を GIF またはアニメーション WebP に変換します。アップロードは発生しません。範囲を決め、フレームレート・幅・画質を設定するだけです。GIF は二段階パレット方式で作成し、アニメーション WebP は多くの場合より小さくなります。
- ファイルは端末に残り、エンジンの読み込みはファイル選択後に始まります
- GIF は二段階パレット方式。アニメーション WebP も選べます
動画ファイルをここにドロップ
ファイルは端末に残ります。アップロードされることはありません
MP4、MOV、WebM、MKV、AVI、M4V ほか、FFmpeg が扱えるほとんどの形式を読み込めます。
まだ動画が選択されていません
動画ファイルを選ぶと始まります。変換エンジンが読み込まれるのはその時点です。
概要
よい GIF は、短く意図の明確な場面から始まります。ここでは符号化の前に、範囲とファイルサイズを調整できます。
- 01
符号化の前に切り出す
再生位置を動かしながら二つのハンドルで必要な数秒を挟み、その場で再生して確認できます。書き出すのは選んだ範囲だけですが、位置を探す際には直前のキーフレームから短い範囲を読み込むことがあります。
- 02
二段階の GIF パレット
このツールの GIF は、素材ごとに作る最大 256 色のパレットを使います。どの 256 色を選ぶかが仕上がりを左右するため、まず映像を解析してパレットを作り、そのパレットに合わせて符号化します。
- 03
アニメーション WebP という選択肢
アニメーション WebP は同じ GIF よりかなり小さくなることが多く、256 色のパレット制約もありません。削減量は素材と設定で変わりますが、掲載先が対応しているなら有力な選択肢です。
- 04
容量を本当に左右する設定
フレームレート・幅・色数・ディザをそれぞれ独立した項目として用意し、その組み合わせで何フレームになるかをその場に表示します。四つの判断を「品質」スライダー一本で覆い隠すようなことはしません。
- 05
逆再生・往復再生・速度
逆向きに再生する、順に再生してから戻す、0.5 倍から 2 倍の速度で流す、といった指定ができます。速度はフレームレートを揃える前に適用されるため、出力は加速後のタイムラインから取り直されます。元の映像からフレームを間引くのとは別物です。
- 06
ローカル処理
FFmpeg を WebAssembly にコンパイルしてタブ内で動かします。アップロードはなく、サーバー側の容量制限も順番待ちも透かしもアカウント登録もありません。
使い方
動画ファイルから完成したアニメーションまで、4 ステップ。
- 01
動画をページにドロップするか、ファイル選択から指定します。変換エンジンのダウンロードはこの時点で始まります。約 31MB で、必要なのは一度だけです。
- 02
二つのハンドルで必要な範囲を挟み、選択範囲を再生して取り逃していないか確認します。長い動画は最初の 10 秒だけが選ばれた状態で開くので、全体を使いたい場合も範囲を広げてください。短いほど扱いやすくなります。
- 03
GIF かアニメーション WebP かを選び、フレームレートと幅を決めます。その下の行に合計フレーム数が出ます。最終的な容量はこの数値に従います。
- 04
作成を押します。GIF ではパレットの算出と符号化の 2 回に分けて処理が進みます。終わったらループするプレビューを確認してダウンロードしてください。
詳細
出来上がったものがそのまま使えるかどうかを決める要素です。
- 二つのハンドルと再生位置つきの範囲指定、選択範囲はその場で再生可能
- 素材ごとにパレットを作る二段階方式の GIF 出力
- 品質を 10〜100 で指定できるアニメーション WebP 出力
- フレームレートは 8〜24 fps
- 幅は 240〜800 px のプリセット、または元の幅のまま
- パレットは 256/128/64/32 色
- ディザは Bayer、Floyd–Steinberg、なしから選択
- 再生速度は 0.5〜2 倍、逆再生と往復再生にも対応
- 無限ループと 1 回再生の切り替え
- 実行前にフレーム数と出力サイズを表示
- エンジンのダウンロード中は見せかけではなく実バイト数の進捗を表示
- 実行中の処理はいつでも中止可能
活用シーン
GIF が適している場面と、それを手元で処理する意味。
-
不具合報告とプルリクエスト
3 秒の GIF があれば説明の一段落と「結局どこを押したのか」というやり取りが一往復省けます。GitHub、GitLab、Jira、Linear はいずれもコメント内で GIF をそのまま再生するので、議論している場所に映像が置けます。
-
アップロードすべきでない画面録画
社内管理画面の録画には、顧客名や案件番号、検証環境の URL が写り込みがちです。タブ内で変換すれば、保存方針を読んだこともない変換サイトへ送らずに済みます。
-
プロダクト更新とリリースノート
新機能が動く様子を短いループで見せると、静止画より伝わる情報が多く、プレイヤーも操作 UI もホスティングも不要です。肝心の操作ひとつに絞れば、本文に直接埋め込める容量に収まります。
-
ドキュメントと README
GIF は Markdown では普通の画像として扱われ、npm でも PyPI でも各種 Git ホスティングでもそのまま動きます。幅を 640 px 以下に抑えておくと、スマートフォンでレイアウトが崩れません。
-
チャットと SNS
Slack、Discord、Teams はいずれも GIF をその場で再生しますが、アップロード上限は切り出していない素材より遥かに小さいのが普通です。範囲を絞って 12〜15 fps まで落とせば、たいてい上限を下回ります。
-
メールとスライド
埋め込み動画は相手側のプレイヤー次第です。GIF は動画を受け付けない場所での代替になりますが、メールでは静止画として表示されることもあるため、最初のフレームだけでも要点が伝わるようにしてください。
使い方のヒント
見やすさを保ちながら容量を抑えるための判断材料です。
- まず切り出す、しかも思い切って。1 秒増えるごとにフレームが丸ごと一組増えるため、長さは他のどの設定よりも高くつきます
- フレームレートは 12〜15 fps から。10 を下回るとかくつき始め、20 を超えると誰も気づかないなめらかさに容量を払うことになります
- 幅は掲載先に合わせます。チャットなら 480 px、README なら 640 px で足り、それ以上広げても増えるのはほぼ容量だけです
- 画面録画ではまず色数を 64 に下げます。単色の面が多い画面はもともと 256 色を使い切っておらず、削減幅が大きい設定です
- 実写の素材ではディザを Bayer のままにし、単色面の多い UI の録画では切ってしまいます。Floyd–Steinberg はグラデーションや写真で色帯が見えるときだけです
- 掲載先が対応しているならアニメーション WebP を優先し、GIF しか通らない場所のために GIF を残します
- 長い範囲で逆再生と往復再生は避けます。順再生と違い、全フレームを同時にメモリへ抱えるためです
制限事項
このツールが意図的に行わないこと、および苦手な条件です。
- エンジンは初回のみ約 31MB です。以降はキャッシュされますが、新しいブラウザープロファイルでの最初の 1 回はこのダウンロードを伴います。
- WebAssembly は 32 ビットで、元ファイルは読み込み中まるごとメモリに載るため、250MB を超えるあたりから動作が不安定になります。
- モバイルブラウザーがタブに割り当てるメモリはデスクトップよりはるかに少なく、特に逆再生と往復再生で先に破綻します。
- ここでの処理はシングルスレッドです。これは意図的な選択で、マルチスレッド化にはクロスオリジン分離が必要になり、ページの他の部分に影響が出るためです。
- 行うのは切り出しと変換で、編集は行いません。画面の切り抜き、字幕の追加、矢印の描画、複数クリップの連結はいずれも対象外です。
- GIF に音声はなく、ここで出力するアニメーション WebP にもありません。音声トラックは破棄されます。必要なのが音の方であれば音声変換をお使いください。
- 一部の AV1 動画は、現在のブラウザー向けエンジンでデコードできないことがあります。読み込めない場合は、先に H.264、VP9、または WebM へ変換してください。
- HEVC を収めた MKV のように、FFmpeg では問題なく読めてもブラウザーでは再生できない組み合わせがあります。その場合もタイムコードによる切り出しは可能で、欠けるのは動くプレビューだけです。
- DRM で保護されたファイルは読み込めません。保護を回避しないツールであれば、どれも同じです。
よくある質問
動画から GIF を作るときによくある質問です。
MP4 を GIF に変換するには?
MP4 をページにドロップし、二つのハンドルで必要な範囲を挟んで作成を押すだけです。既定値の 15 fps・幅 480 px はたいていの画面録画に合います。結果は右側に表示され、保存されるファイルとまったく同じループで再生され、容量も併せて確認できます。
動画はどこかにアップロードされますか?
されません。エンジンは WebAssembly にコンパイルした FFmpeg で、あなたのブラウザーのタブ内で動作します。ファイルはディスクからタブのメモリへ読み込まれ、結果はダウンロードとして書き出されるだけです。ファイルの内容がネットワークを通ることはなく、処理中に開発者ツールのネットワークタブを見れば自分で確認できます。
GIF が大きくなってしまいます。小さくするには?
GIF はフレームごとに独立して圧縮し、動画コーデックのように色情報を大胆に捨てることもできないため、容量はフレーム数とフレームの面積にほぼ比例します。効果の大きい順に、範囲を短くする、フレームレートを下げる、幅を小さくする、色数を 64 に絞る、です。幅を半分にすると画素数は 4 分の 1 になり、パレットの調整より効くのが普通です。
フレームレートと幅はどう選べばよいですか?
画面録画なら 12〜15 fps・幅 480 px が扱いやすく、README に載せるなら 640 px です。20〜24 fps はカーソルの素早い動きや高速スクロールなど、動きの速い映像に限って意味があります。ゆっくりした操作説明では 8〜10 fps まで下げた方が、なめらかさより容量の面で得になります。
GIF とアニメーション WebP のどちらを選ぶべきですか?
アニメーション WebP は同じ GIF よりかなり小さくなることが多く、色や透明度の表現も優れています。ただし最終的な容量は素材と設定で変わります。表示先が現代的なブラウザーなら WebP を優先してください。GIF だけを受け付ける掲載先、古い・不明な環境、メールでアニメーションされるか不確かな場合は GIF を選び、最初のフレームだけでも要点が伝わるようにしましょう。
GIF がざらついたり色帯が出たりします
GIF は 1 フレーム 256 色までなので、グラデーションや写真は近似するほかありません。このツールは汎用パレットではなく素材ごとのパレットを作るため、多くの場合はその時点で解消します。それでも色帯が残るなら色数を 256 に戻し、ディザを Floyd–Steinberg にしてください。逆にノイズを撒いたようにざらつく場合は、ディザをなしにするのが正解であることが多く、単色面の多い画面録画ではよくあります。
一度にどれくらいの長さを変換できますか?
固定の上限はありませんが、30 秒を超えると警告が出ます。GIF の容量はフレーム数に応じて増え続けるためです。450 フレーム前後——15 fps なら 30 秒——を超えるようなら、WebP か、そもそも動画ファイルの方が向いています。最も制約が強いのは逆再生と往復再生で、書き出しの前に全フレームを保持する必要があります。
最初の作成が始まるまで時間がかかるのはなぜですか?
変換エンジンが約 31MB あり、最初にファイルを選んだ時点でダウンロードされるためです。以降は長期間キャッシュされるので、再訪時も次回以降もすぐ始まります。このダウンロードはファイルを実際に選ぶまで意図的に先送りしてあるため、このページを読むだけでは通信量はかかりません。
画面を切り抜いたり字幕を入れたりできますか?
ここではできません。このツールが切り出すのは時間であって、画面に何かを足すことはしません。切り抜きも字幕も、それぞれ専用のプレビューと取り消しを必要とする編集作業です。中途半端な実装を変換ツールに継ぎ足すと、結局どちらも使いものにならない道具になりがちです。
スマートフォンでも使えますか?
短い素材ならたいてい動きます。長いものはうまくいかないことが多く、モバイルブラウザーがタブに割り当てるメモリはデスクトップよりはるかに少ないため、上限に達するとタブが終了させられます。最初に破綻するのは逆再生と往復再生です。数秒を超える素材にはデスクトップのブラウザーの方が確実です。
関連ツール
メディアや画像をローカルだけで扱うツールが他にもあります。