動画GIF変換ツール

動画をGIFに変換してミーム字幕を追加

このツールは大画面(PC)でのご利用をおすすめします。

動画GIF変換ツールについて

このツールは動画の再生位置を少しずつ動かしながら1コマずつキャンバスに描いてキャプチャし、そのフレームを自前でGIFにエンコードします。変換サーバーやFFmpegは使わず、パレット抽出(メディアンカット)もLZW圧縮もツール内のコードが行います。上下のテロップ(Impact系の白文字に黒フチ)を映像の上に重ねるか、上下に白帯を足してその中に入れることもできます。

GIFは1987年生まれの画像形式で、動画コーデックと比べると非常に非効率です。MP4なら数百KBの3秒の場面が、GIFでは数MBになるのは珍しくありません。容量を決めるのはフレームレート、幅、色数の3つです。

GIFは1コマ256色まで

GIFの仕様ではカラーテーブル(パレット)は最大256色で、各ピクセルはその番号として保存されます。動画の1場面には数万色あるので、どの256色(またはそれ以下)を残すか選ぶ必要があります。このツールはキャプチャした全フレームからピクセルを標本として集め、色空間で最も広がった箱を半分ずつ割っていくメディアンカットで共通パレットを1つ作ります。

その後、各ピクセルをパレット内で最も近い色に置き換えます。このツールはディザリング(誤差を周囲のピクセルに散らして中間色を表現する手法)を行わないため、空や肌のようななめらかな部分には階段状の帯(バンディング)が出ます。その代わり同じ番号が続きやすくLZWがよく効くので、ファイルは小さくなります。色数を64に下げると実写では帯が目立ちますが、アニメやゲーム画面のようにもともと色が少ない映像ではほとんど分かりません。

同じ場面でGIFがMP4より何倍も大きい理由

H.264などの動画コーデックは前のフレームから動いた部分だけを動きベクトルと差分で記録するので、止まっている背景はほぼタダです。GIFのLZWは1コマの中で繰り返すピクセル列を圧縮するだけでフレーム間の類似は見ず、このツールは毎フレームを全画面で書き込みます。そのためGIFの容量はおおよそ「ピクセル数×フレーム数」に比例して増えます。

Webページに短いループ映像を置くなら、GIFより自動再生・ミュート・ループ設定のvideo要素のほうがずっと軽い、というのがweb.devの推奨でもあります。GIFが今も必要なのは、画像ファイルしか受け付けない掲示板やチャットのリアクション、メールなどです。

フレームレートと幅、どちらから削るか

容量は幅の2乗に比例します。横480pxを360pxにするとピクセル数は(360/480)²=0.5625倍、約44%減です。フレームレートは1乗で効き、15fpsを10fpsにするとコマ数が3分の1減ります。画面内の文字を読ませたいなら幅を守ってfpsを下げ、速い動きが見どころならfpsを守って幅を縮めます。

GIFのフレーム遅延は1/100秒単位でしか保存できません。15fps(66.7ms)を毎フレーム7/100秒に丸めると約14.3fpsに遅くなるため、このツールは丸め誤差を次のフレームに繰り越し、7・7・6/100秒を混ぜて使います。12fpsは8・8・9/100秒が交互に入り、1秒でちょうど12フレームになります。1コマごとの間隔は最大1/100秒ばらつきますが、全体の再生時間は元の区間と一致します。10・20・25fpsのように100を割り切れる値なら間隔もすべて同じです。長い区間に高いfpsを指定すると、ツールはフレームを最大200枚に抑え、fpsを自動で下げます。

ミームのテロップを読みやすくするには

テロップはパレットを作る前に描かれるので、白文字+黒フチはパレットが小さくてもほぼ確実に残ります。色文字はパレットに近い色がないと濁ることがあります。長い文は自動で折り返し、1ブロックが8行を超えると最後の行が「…」で切られます。

映像に重ねる方式は画面の一部が隠れ、上下に白帯を足す方式は画面を隠さない代わりにGIFの高さが増え、容量もその分大きくなります。

例

バランスプリセットで5秒

入力
1920×1080の動画、5秒、12fps、幅360px、128色
結果
60フレーム、360×203px、ツールの見積もり約2.2MB

見積もりは360×203×7ビット(128色)×0.6(LZW圧縮率の仮定)÷8≒38,367バイト/フレーム×60フレームです。実際のサイズは動きや色の分布で変わり、静止した場面が多いとずっと小さくなります。

同じ区間を軽量プリセットで

入力
5秒、8fps、幅240px、64色
結果
40フレーム、240×135px、見積もり約0.5MB

ピクセル数は約44%、コマ数は67%、色ビットは6/7になり、掛け合わせると約4分の1です。スタンプやリアクション用ならこれで十分です。

20秒を15fpsで指定したとき

入力
区間20秒、15fps
結果
200フレーム、実際は10fps(遅延100ms)

20×15=300フレームが上限200を超えるため、fpsは200÷20=10に自動調整されます。長いGIFが必要なら、先に幅と色数を減らしましょう。

使い方

  1. 動画を読み込み、フィルムストリップで開始・終了位置を決めます。
  2. プリセットを選ぶか、fps・幅・色数を直接入力します。
  3. 必要なら上下のテロップを入れ、配置方法を選びます。
  4. GIFを作成し、プレビューしてからダウンロードします。

よくある質問

GIFを一番効果的に軽くする方法は?

幅を縮めることです。容量は幅の2乗に比例するので、480pxを320pxにするとピクセル数は半分以下になります。次に区間の長さとfps、最後が色数です。

空やグラデーションに縞が出ます。

256色以下に減らしたことによるバンディングです。このツールはディザリングをしないので、色数を256まで上げると和らぎます。その分容量は増えます。

15fpsは正確な速さで再生されますか。

GIFの遅延は1/100秒単位なので66.7msはそのまま保存できません。ツールは7・7・6/100秒を混ぜて平均15fpsにするので全体の長さは合います。コマ間隔まで均一にしたいなら10・20・25fpsのように100を割り切れる値を使ってください。

音は入りますか?

GIF形式に音声はありません。音が必要なら動画圧縮ツールでMP4を作ってください。

SNSに投稿したら動かなくなりました。

サービスによっては大きいGIFを静止画や動画に変換して掲載します。基準はサービスごとに違い変更も多いので、幅とfpsを下げて小さくしてから再投稿してみてください。

出典

基準日:

プライバシーとデータの扱い