piapia123
ja

動画から GIF を作る

メディア

処理はすべてブラウザ内で完結します。データは送信されません

ここに動画をドロップ、またはクリックして選択

MP4 / MOV / WebM · 1 ファイル 200 MB まで

動画の一部を GIF にします。GIF は 1987 年の形式で、1 フレーム最大 256 色、フレーム間圧縮もありません。そのため同じ内容でも GIF は数 MB、MP4 なら数百 KB になります。だからこそ設定を調整できる必要があり、また本ツールがプレビューを見ながら範囲を選べるようになっています(プレーヤーを目的の位置まで動かし、その秒数を入力します)。7 秒目がどんな絵かを想像するのは無理だからです。サイズは幅の二乗で効きます(640 から 320 にするとおよそ 4 分の 1)。長さとフレームレートは線形です。小さくしたいならまず幅を半分にしてください。処理はすべて端末内で完結します。デコードはブラウザ自身の `<video>`、フレーム取得は canvas、符号化は JS で行い、動画は送信されません。

機能

  • 動画の一部を切り出して GIF に(範囲は 0.1 秒単位)
  • フレームレートは 8〜20 fps(通常 10 fps で十分です)
  • 幅は 320〜1280 px。サイズは二乗で効くため幅が最も重要です
  • 色数は 256 / 128 / 64。色の劣化とサイズを天秤にかけられます
  • ループ再生、または 1 回だけの再生
  • ページ上にプレビューとシークバーがあり、目で見て範囲を選べます
  • 進捗バー付きで、何フレーム目かが分かります
  • 動画より長い時間を指定した場合は自動で収め、その旨を表示します
  • 動画は送信されず、サーバーも経由しません。オフラインでも使えます

使い方

  1. 動画をドロップします(まずブラウザで再生できるか確認してください)
  2. プレビューのシークバーを動かして目的の箇所を探し、開始と終了の秒数を入力します
  3. フレームレート・幅・色数を選びます
  4. 「開始」を押し、進捗が終わるのを待って GIF をダウンロードします

よくある質問

GIF が元の動画より大きくなるのはなぜですか?
GIF はほとんど圧縮しないためです。各フレームは完全な 256 色のビットマップで、圧縮はフレーム内の弱い LZW のみです。一方、動画形式はフレーム間の差分(「このブロックが右に 3 ピクセル動いた」など)を保存します。そのため 1080p の 2 秒が GIF では 20 MB になることもあります。効果の大きい順に 3 つ:幅を半分に(およそ 4 分の 1)、範囲を短く、フレームレートを 10 fps に。色数を 256 から 128 にしても 1 割程度で、効果は最も弱いです。
書き出した GIF がカクつき、同じフレームが繰り返されます。
よくある原因は、ブラウザが常に正確にシークできるわけではないことです。一部の形式(索引のない MP4、特定の MOV)はキーフレームにしかシークできないため、3.2 秒を要求しても 3 秒のフレームが返ります。症状は数フレームが止まって見えることです。先に標準的な H.264 の MP4 に変換すると(多くの編集ソフトが索引を書きます)正確になります。なお 8 fps 未満はそれ自体がカクついて見えます。設定の問題で、不具合ではありません。
動画が黒い矩形のままで、エラーも出ません。
ブラウザがその符号化をデコードできないという意味です。よくあるのは HEVC / H.265(新しい iPhone の既定)と AV1、そして破損したファイルも同じ挙動になります。本ツールは進捗が動かないまま放置せず、プレビュー欄でその旨を伝えます。対処は、プレーヤーや編集ソフトで H.264(AVC)の MP4 として書き出し、それをドロップすることです。
動画は送信されますか?
いいえ。デコードはブラウザ自身の `<video>`、フレーム取得は canvas、符号化はローカルの JS ライブラリで行い、通信は一切発生しません。オフラインでも使えます。持ち込まれるのは会議の録画、家族の映像、顧客のデモなど私人性の高いものが多く、それらはサーバーを通すべきではありません。

関連ツール