[WEB App]GIF Compressor v2 - 動画→GIF変換&NOTE最適化ツール

[WEB App]GIF Compressor v2 - 動画→GIF変換&NOTE最適化ツール

GIF Compressor v2

動画ファイル(MP4 / WebM)やGIFをブラウザ上で最適なGIFに変換するツールです。

gif.js(Web Worker GIFエンコーダ)と Gifsicle WASM(C言語製GIF最適化エンジン)のデュアルエンジン構成により、動画→GIF変換から最終最適化までをブラウザ内で完結します。

NOTE記事へのGIFアップロードに最適化されたNOTEプリセット(640px / 10fps / 200フレーム以下 / 20MB上限)を搭載。

スクリーンショット

GIF Compressor v2

動画

GIF Compressor v2 (動画) GIF Compressor v2 (動画)

ツール

特徴

動画→GIF変換

MP4やWebMなどの動画ファイルを直接GIFに変換できます。FFmpeg WASMのような重いライブラリ(25MB超)を使わず、ブラウザのネイティブ<video>デコーダ + Canvas + gif.jsの軽量な構成で実現しています。SharedArrayBuffer不要のため、あらゆる静的ホスティング環境で動作します。

NOTEプリセット

NOTEのGIFアップロード制限(公式:20MB / 非公式:200フレーム以下推奨)に合わせたワンボタンプリセットを搭載。フレーム数超過時は警告を表示します。

デュアルエンジン最適化

  1. gif.js — 動画フレームをWeb Workerで並列GIFエンコード
  2. Gifsicle WASM — フレーム差分最適化 + Lossy圧縮で最終仕上げ

GIF入力の場合はGifsicle WASMのみで処理し、既存GIFの再圧縮にも対応します。

完全ローカル処理

すべての処理はブラウザ内で完結。動画データもGIFデータも一切サーバーに送信されません。


使い方

  1. ファイルをドロップ(MP4 / WebM / GIF)
GIF Compressor v2: 1.ファイルをドロップ(MP4 / WebM / GIF)
  1. 動画の場合:トリムスライダーで区間を指定
GIF Compressor v2: 2.動画の場合:トリムスライダーで区間を指定
  1. プリセットを選択(NOTE / BLOG / CUSTOM)
GIF Compressor v2: 3.プリセットを選択(NOTE / BLOG / CUSTOM) GIF Compressor v2: 3.プリセットを選択(NOTE / BLOG / CUSTOM)
  1. EXECUTEをクリック
GIF Compressor v2: 4.EXECUTEをクリック
  1. 完了後、ダウンロード

フレーム抽出 → GIFエンコード → Gifsicle最適化の各段階でリアルタイムにプログレスを表示します。


プリセット一覧

プリセット横幅FPS最大フレーム用途
NOTE640px10fps200fNOTE記事投稿
BLOG800px15fps450fブログ・技術記事
CUSTOM自由自由制限なし詳細設定

技術スタック

  • gif.js — Web Worker並列GIFエンコーダ(フレーム抽出・GIF生成)
  • Gifsicle WASM — C言語製GIF最適化エンジンのWebAssembly移植版(Lossy圧縮・色数最適化)
  • HTML / CSS / JavaScript — 単一ファイルで完結、Astroページとしてデプロイ
  • CDN依存 — gif.js (cloudflare) + gifsicle-wasm-browser (jsdelivr) の2つのみ

処理パイプライン

[動画入力] MP4/WebM
  → <video>ネイティブデコード
  → Canvasフレーム描画 (指定FPSでseek)
  → gif.js GIFエンコード (Web Worker並列)
  → Gifsicle WASM 最終最適化 (Lossy + 色数)
  → [GIF出力]

[GIF入力]
  → Gifsicle WASM 最適化 (リサイズ + Lossy + 色数)
  → [GIF出力]

開発の経緯

v1はGIF→GIF圧縮のみのシンプルなGifsicle WASMラッパーでした。

NOTE記事にGIFを投稿する際、動画→GIF変換を別ツールで行ってからGifsicle WASMで圧縮するという2段階の手間が発生していました。さらにNOTEのアップロード制限(ファイルサイズだけでなくフレーム数が裏のキラー制約)に対応するには、FPSとフレーム数を正確にコントロールする必要がありました。

v2ではgif.jsを組み合わせることでFFmpeg WASMなしの軽量な動画→GIF変換を実現し、NOTEプリセットでワンボタン最適化を可能にしました。

関連記事


更新履歴

  • [2026/08/09]: v2 公開 — 動画→GIF変換対応、NOTEプリセット、gif.jsデュアルエンジン
  • [2026/07/23]: v1 公開 — Gifsicle WASM GIF圧縮