Purebitsoft 第五弾 MP4→GIF変換ツール
インストール不要・オフラインで使えるMP4→GIF変換ツールを無料配布しています
動画をGIFアニメにしたい。でもオンラインツールは動画をサーバーに送るのが気になる。変換ソフトをインストールするのも面倒——そういうときのために、HTMLファイル一つで動くMP4→GIF変換ツールを作りました。
どんなツールか
MP4toGIF(Purebitsoft)は、ブラウザで開くだけで使えるGIF変換ツールです。
インストール不要
アカウント登録不要
完全オフライン動作(動画データはどこにも送信されません)
Windows / Mac / Linux すべてのブラウザで動作

主な機能
🎬 MP4読み込み ドラッグ&ドロップまたはクリックで動画を読み込みます。読み込んだ動画はブラウザ内でそのままプレビューできます。
⚙️ FPS調整 5〜24fpsの範囲でスライダー調整できます。ファイルサイズを抑えたいときは低め、なめらかさを優先したいときは高めに設定してください。
📐 出力幅指定 ピクセル単位で出力幅を指定できます。高さはアスペクト比を自動維持します。
✂️ トリミング 開始・終了時間を秒単位で指定して、必要な部分だけをGIFにできます。最大30秒まで対応しています。
📊 進捗表示 フレーム抽出とエンコードの進捗をバーで表示します。変換中に固まったわけではないと分かるので安心です。
使い方
HTMLファイルをダウンロードし、ブラウザで開く
MP4ファイルをドラッグ&ドロップまたはクリックして選択
FPS・出力幅・トリミング範囲を設定
「変換する」ボタンを押して待つ
プレビューを確認して「ダウンロード」

技術的な話(読み飛ばしOK)
このツールの一番の苦労は、GIFエンコーダーを外部ライブラリなしでゼロから書いたことです。
GIFのデータ圧縮にはLZWという方式が使われています。最初はCDNのライブラリ(gif.js)を使っていましたが、オフライン環境で動かないため自前実装に切り替えました。
LZWのバグ取りに3バージョンかかりました。最終的に見つかったのは「エンコーダーとデコーダーで圧縮テーブルのサイズを増やすタイミングが1ステップずれていた」という問題です。ずれ量がたった1ステップなので正常なケースでは動き、特定のピクセルパターンで初めて壊れるという性質が厄介でした。Pythonで検証コードを書いてビット列レベルで追いかけてやっと特定できました。
制限事項
最大30秒・300フレームまで(超えるとエラー表示)
色数はGIF仕様の上限256色
長時間・高解像度の動画はブラウザのメモリ制限に注意
ダウンロード
一切無料です。使ってみた感想があれば、コメントで教えてください。
Purebitsoft — 単機能・オフライン・インストール不要のHTMLツールを作っています。
