MacでDiscord用GIFを圧縮する
MacでGIFをトリミング、クロップ、フレームレートと幅の削減、パレット再構築を行い、現在のアップロード制限を確認してDiscord用に圧縮します。
チームのDiscord用にUIデモのGIFをエクスポートしました。12 MBでアップロードに失敗します。Discordはメッセージごとに添付ファイルのサイズ上限を設けており、フルスクリーンキャプチャのアニメーションGIFはその上限をすぐに超えてしまいます。解決策は、ステージング中のUIを他人のサーバーに置くランダムなオンライン圧縮ツールではありません。ループをトリミングし、パネルにクロップし、fpsと幅を下げ、ローカルでパレットを再構築します。週に1回モーションプレビューを投稿するコミュニティマネージャーや開発チームは、チャンネルごとに設定を推測するのではなく、1つの保存済みプリセットを活用するメリットがあります。
DiscordのGIF添付ファイル制限
Discordは 非Nitroファイルアップロードの最大値を現在10 MBと文書化 しており、一部のユーザーに対して異なる制限の実験を行っているとしています。Nitroや実験的な制限によりアカウントが受け付けるサイズは変動するため、恒久的なプリセットを作成する前にアップローダーを確認してください。
| アカウントまたは展開状態 | 対応 |
|---|---|
| 非Nitro | 現在文書化されている10 MBの上限を使用 |
| Nitroまたは実験的制限 | エクスポート前にアップローダーに表示される値を確認 |
アカウントに表示される上限のやや下を目標にします。トリミングを行わない場合、15秒間のフル幅GIFはより大きな上限でも超える可能性があります。
| クリップの習慣 | アップロードが失敗する理由 |
|---|---|
| 1920 pxの全画面 | フレームあたりのピクセル数が多すぎる |
| 15秒以上のループ | サイズが線形に増加 |
| 15 fpsの画面キャプチャ | 必要なフレーム数より多い |
MP4がユースケースに適しているかチャンネルで確認してください。最新の動画圧縮は通常GIFよりも効率的であり、フルカラーとオプションのオーディオを保持します。動画が許容される場合は MacでGIFをMP4に変換 を参照してください。GIFのパレット制限がグラデーションで 濁って見える理由を理解するには 可逆圧縮と非可逆圧縮 を参照してください。
画面録画からGIFを作成するには Macで動画からGIFに変換 を参照してください。一般的なGIFの縮小には MacでGIFを圧縮 を参照してください。
Discordの上限に合わせた設定
Discordの上限に合わせるには、以下の固定順序で処理します。期間のトリミング、不要な領域のクロップ、幅の縮小、fpsの低下、そしてパレットエンコードです。
| 10 MBベースラインの開始点 | 推奨設定 |
|---|---|
| UIバグ再現 | 4秒、幅640 px、8 fps |
| 機能ティザー | 6秒、幅800 px、10 fps |
| エモジ風リアクション | 2秒、幅480 px、8 fps |
| パラメータ | ファイルサイズを小さく | 可読性を良く |
|---|---|---|
| 期間 | 3〜5秒 | 最大6〜8秒 |
| 幅 | 480〜640 px | 800 px |
| fps | 8 | 10〜12 |
| ソース | クロップされたパネル | フルスクリーン |
重複するループを削除します。DiscordはGIFを自動再生するため、再現やリアクションには1つのクリーンなサイクルで十分です。
アクションが画面の一角にある場合は、スケール処理の前にクロップしてください。座標ワークフローについては MacでGIFをクロップ を参照してください。
投稿前にFinderでファイルサイズを確認します。まだ上限を超えている場合は、さらに期間を削る前にfpsを8、または幅を480 pxに下げます。
FFmpegでDiscord用に圧縮
Terminal(アプリケーション → ユーティリティ → ターミナル)を開きます。Homebrewを通じてFFmpegをインストールします(brewが見つからない場合はまずHomebrewをインストールしてください)。
brew install ffmpegMP4ソースからのDiscord対応パレットパイプライン:
ffmpeg -i clip.mp4 -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 discord.gif既存のサイズ超過GIFを再圧縮:
ffmpeg -i big.gif -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 discord-small.gifパネルのみの再現用にクロップする場合:
ffmpeg -i big.gif -vf "crop=700:500:80:120,fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 discord-cropped.gif| 表示された上限をまだ超えている | 次の調整項目 |
|---|---|
| 640 px 8 fps後 | 3秒にトリミング |
| トリミング後 | 幅480 px |
| 480 px後 | MP4としてエクスポート |
ループの開始部分でアイドルフレームをエンコードしないよう、FFmpegの前にQuickTimeでトリミングしてください。
ローンチ発表前に、ミームや再現用GIFファイルのフォルダを一括圧縮します:
mkdir discord-out
for f in *.gif; do
ffmpeg -i "$f" -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 "discord-out/${f}"
done公開チャンネルに投稿する前に、Retinaディスプレイ上で出力のテキスト可読性を確認してください。
定期的なDiscord GIF作業にGetCompressが適している場合
FFmpegのパレットレシピは 単発のGIF作成には十分であり、チャンネルが動画を受け付ける場合はMP4が通常はより良いフォーマットです。チームがMOV、MP4、またはサイズ超過のGIFソースをDiscord対応のループに繰り返し変換する場合は、GetCompressがより適しています。フレームプレビュー、トリミング、幅プリセット、バッチキューにより、投稿ごとにコマンドを維持することなく結果を簡単に確認できます。
元のマスターファイルは保管し、Discordに表示される最新の上限を確認してください。投稿前には、最終的な文字の読みやすさも確認します。
- MacでGIFを圧縮GetCompress、QuickTimeのMP4書き出し、またはFFmpegを使ってMacでGIFを圧縮します。トリミング、幅の縮小、またはツールが動画に対応している場合はMP4への変換を行います。
- ベストGIF圧縮ツールGetCompress、Gifski、gifsicle、Ezgif、GIPHYの5つのGIF圧縮ツールを比較。高画質を維持しつつファイルサイズを小さくします。
- WindowsでDiscord用GIFを圧縮するWindowsでDiscord用GIFを、トリミング、クロップ、フレームレートと幅の削減、パレットの再構築、現在のアップロード制限の確認によって圧縮します。
- MacでJPEGを圧縮してアップロード制限に対応プレビューとsipsを使ってMacのアップロード制限に合わせたJPEGファイルを圧縮します。表示に必要な解像度にリサイズし、品質を調整して色を保持し、アップロード後のコピーを確認します。