abox.tools

言語: 日本語

動画をGIFにする方法

GIFは1987年の形式で、動きではなく画像を丸ごと保存します。ですから動画から作ったGIFは、必ず大きくなります。ここでは、大きすぎるときに3つの設定のどれを動かすべきか、そしてそれぞれがどれだけ効くのかを説明します。

動画→GIF変換ツールを開く 使う範囲と、大きさと、フレームレートを選ぶだけです。

Markdownで表示

短い答え

動画をGIFに変換するツールを開いて映像を入れ、必要な秒数に印を付け、幅は480、フレームレートは1秒12のままにします。たいていのGIFが求める設定が、それです。ファイルが大きすぎたら、ほかに手をつける前に幅を下げてください。二重に効く設定は、それだからです。

このページの残りは、その理由の話です。「GIFが14MBになった」が実際に誰もが抱える問題であり、どのつまみを回せばよいのかは自明ではないからです。

動画から作ったGIFがこれほど巨大になる理由

動画のコーデックは動きを保存します。数秒に1回だけ完全な画像を書き、その間のフレームについては、その画像がどう動いたのかの記述を書きます。このピクセルのかたまりが左へ4つ滑った、この領域が少し暗くなりました。5秒の映像が数百キロバイトで済むのは、その大半が、すでに手元にある画像についての指示だからです。

GIFには、それが一切ありません。1989年に仕様が固まったもので、それらが存在する前のものです。どのフレームも1枚の画像であり、表計算のスクリーンショットのために設計された方式で、単独で圧縮されます。動き推定はこの形式のどこにもありませんし、足す方法もありません。

ですから見込むべき数字は動画の10倍であり、どの変換ツールも、それをやめさせることはできません。よくできた道具にできるのは、その上に無駄を重ねないことと、実際に大きさを決める3つの設定を渡すことです。

区間のカード。タイムコード入りの映像フレームと、20秒の映像の中で4秒が印されていることを示すバー。
まず区間です。下のどの設定も、残した秒数の分だけ掛け算されるからです。

3つの設定と、それぞれの代償

GIFの大きさに関するすべては、含まれるピクセルの数に帰着します。長さ×レート×1フレームの面積です。

具体例をひとつ。スマホの映像6秒を、そのままの1080×1920、30fpsで作ると、200万ピクセルのフレームが180枚。約3億5000万ピクセルで、これはGIFではなく人質事件です。同じ6秒を幅480、12fpsにすると、40万ピクセルのフレームが72枚、つまり3000万で約12分の1です。そして、人がGIFと言って思い浮かべるものになります。

書き出しのカード。幅480、フレームレート、ディザリングの選択、そしてフレーム数と容量を見積もった要約。
三つの設定と、それに合わせて動く見積もり。どれから使うかが、この節の主題です。

どのフレームレートを選ぶか

ここでは12が既定であり、驚くほどよく正解になります。手描きのアニメーションが1世紀にわたって使ってきたレートです。目が連続した動きとして読み取れるだけ速く、誰にも見えないフレームに費用を払わずに済むだけ遅いのです。

知っておいて損のない、固い上限があります。GIFは各フレームが画面に留まる時間を100分の1秒単位で保存しますが、どのブラウザも100分の2未満の遅延を100分の10として扱います。ですから1秒50フレームが実際の最大で、100を要求するファイルは黙って10で再生されます。60fpsを提示してくる変換ツールは、それを無視しているか、これから使う人を驚かせようとしているかのどちらかです。

256色と、ディザリングの役割

この形式の古さの、もう半分です。GIFは最大256色の表を1つ抱え、どのピクセルもその表を指す番号です。動画のフレームは最大1600万色を持ちます。そのほとんどが捨てられますし、どう捨てられるかが、GIFの見た目のほとんどを決めます。

よくできた変換ツールはその映像の色を数え、それに合う256色を選びます。固定の組を使うのではありません。森の映像には256の緑が、夕焼けの映像には256の橙が割り当てられます。ここの道具がしているのはそれで、しかも最初のフレームだけではなく範囲の全フレームにわたって行うので、最後にしか現れない色にも席が与えられます。

ディザリングは、それでも必要な色が足りないところで起きることです。ある領域全体を、手持ちのいちばん近い色に丸めてしまうと、なめらかな空が、あいだに段の見える4本の平坦な帯になります。そうする代わりに、いちばん近い2色を細かい模様で交互に置きます。ふつうの視距離なら、目がそれを、そこにない1色に混ぜてくれます。

変換ツールを比べるなら、知っておく価値のある細部がひとつあります。思いつきやすいディザのやり方、つまりたいていの画像編集ソフトが使う誤差拡散は、各ピクセルの結果を周囲のピクセルに依存させます。アニメーションでそれをすると、動いていない背景がフレームごとに違うディザになるので、目に見えて這います。しかも技術的にはすべてのピクセルが変わっているので、どのフレームも丸ごと保存しなければなりません。もう一方の組織的ディザは、ピクセルがどこにあるかだけに依存するので、静止した背景は完全に静止したままです。この道具が使っているのはそれで、ファイルが落ち着いているだけでなく、小さくもなる理由です。

そもそもGIFにすべきでないとき

問う価値があります。正直な答えが、しばしば「やめておけ」だからです。無音でループするMP4やWebMは、同じ動きをGIFにした場合のおよそ10分の1の大きさで、同じように再生されますし、どのみちどのSNSも、アップロードされたGIFをそれに変換します。

行き先が本当にGIFを必要とする場合には、GIFのままにしてください。

音が大事なら、問いは自ずと答えます。GIFに音声があったことはありませんし、これからもありません。代わりに動画を切り出してください。動画カットツールなら、フレームを1枚もエンコードし直さずに一部を取り出せます。

サイズの上限に収める

GIFを調整する理由のほとんどは、行き先の上限です。効いてくる順に、おおまかに挙げます。

超えているときに試す順序です。まず範囲を短くする、次に幅を半分にする、次にレートを下げる、最後にディザリングを切る。最初の2つは、後ろの2つを合わせたよりも価値があります。

これにアップロードは要りません

動画をGIFに変換することは、デコードし、縮小し、色を数え、圧縮することです。ブラウザが何年も前から自力でできる、4つのことです。冒頭でリンクした道具は、そのすべてを手元の端末で行います。ファイルはディスクから読み、フレームはブラウザがデコードし、GIFはメモリ上で組み立ててダウンロードへ渡します。

ここではそれを、ふつう以上に気にする価値があります。人がGIFにする映像は、個人的なものだからです。家族の動画の一場面、仕事の何かの画面録画、通話の数秒。それをアップロードさせたがる変換ツールは、その複製を求めているのであり、それに応じる技術的な理由は、もう残っていません。