先にDiscordの送信画面で上限を確認し、その値から計算してください。 この記事はFFmpegで容量を調整するための計算・コマンドガイドです。通信や添付権限で送れない場合は、一般向けの切り分けを先に使います。インストールせずに試す場合は容量指定の圧縮ツールへ進めます。

上限をプラン名だけで決めない

2026-09-11に確認したDiscordの添付ファイルFAQは、無料20MB・Nitro Basic 50MB・Nitro最大500MBを案内し、上限の試験的変更にも言及しています。古いヘルプや記事には異なる値が残っています。実際の送信画面と、共有先に適用される条件を優先してください。

有料プランへの加入が動画変換の成功や、すべての受け手での再生を保証するわけではありません。この記事では特定のプランを購入する必要はありません。

MBからビットレートを計算する

この記事は 1 MB = 1,000,000バイト、1 kbps = 1,000 bit/s です。1 MiBは1,048,576バイトで、別の単位です。

合計kbps = 目標MB × 8000 × 余裕率 ÷ 動画の秒数
映像kbps = floor(合計kbps − 音声kbps)

余裕率0.95は、5%をコンテナ等の余裕として残す計画値です。必ず収まる係数ではありません。映像に割り当てる値がゼロ以下なら、その長さ・音声設定での計画は成立しません。尺を短くする、音声が不要なら削除する、共有リンクを使うなどを検討します。

90秒、音声128kbps、余裕率0.95の場合:

目標容量 合計kbps(概算) 指定する映像kbps
10 MB 844.44 716
20 MB 1688.89 1560
25 MB 2111.11 1983
50 MB 4222.22 4094

これは計算表であり、実測容量やプラン一覧ではありません。解像度の「最低ビットレート」は被写体・文字・動きで変わるため、この表だけで画質を保証できません。

90秒を20MB以内に近づける例

入力が90秒であることを先に確認します。映像は最初の1本、音声があれば最初の1本を使い、H.264/AACのMP4にします。

ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -c:v libx264 -b:v 1560k -preset medium -c:a aac -b:a 128k -map_metadata -1 -map_chapters -1 -sn -dn -movflags +faststart discord-20mb.mp4

この例は1行なのでPowerShellやコマンドプロンプトでも改行継続文字の置換は不要です。FFmpegがインストールされ、入力パスを正しく指定できることが前提です。元のファイルは残してください。

動画の長さを90秒にするコマンドではありません。 入力が長ければ、同じ設定でも出力が大きくなります。複数音声・字幕・チャプターをすべて保持する例でもありません。タグを抑制しても顔・声・映像内の文字は残ります。

容量が安定しないときは2パスを比較する

2パスは1回目に映像を分析し、2回目に同じ素材・映像設定で書き出します。ぴったりのバイト数を保証する方式ではありません。専用の作業フォルダーで実行し、別の処理とログ名を共有しないでください。

ffmpeg -i input.mp4 -map 0:v:0 -c:v libx264 -b:v 1560k -preset medium -pass 1 -passlogfile discord20-pass -an -f null -
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0? -c:v libx264 -b:v 1560k -preset medium -pass 2 -passlogfile discord20-pass -c:a aac -b:a 128k -map_metadata -1 -map_chapters -1 -sn -dn -movflags +faststart discord-20mb-2pass.mp4

1回目が失敗したら2回目を実行しないでください。入力の変更、カット、解像度・映像設定の変更後は1回目からやり直します。詳細は2パスエンコードにまとめています。

出力後に確認すること

確認結果 次に行うこと
ファイルがない、0バイト、FFmpegがエラー終了 保存成功と扱わず、エラーと入力形式を確認
実ファイルサイズが上限以上 元動画から余裕を増やして再計算、短縮、共有リンクを比較
容量内だが文字や動きが見づらい 実画像の画質比較を参考に、尺・解像度・容量のどれを優先するか決める
音声・字幕・向きが不足 元動画と出力を比べ、選択するトラックや変換設定を見直す
容量内なのに送れない 小さな無害なファイルでも試し、通信・権限・サービス側の状態を確認
送れたが相手が再生できない 相手のアプリで再生確認。容量内であることと再生互換性は別

Windowsではエクスプローラーのプロパティ等でバイト数を確認し、画面上で丸められたMB表示だけで判断しないでください。元動画・出力の冒頭、中間、最後を再生し、採用する結果だけを共有します。

確認範囲と訂正

2026-09-11、Windowsのnative FFmpeg 8.1で上記コマンドを各1回実行しました。入力は90秒・640x360・30fpsの合成パターンと440Hzの音で、実際の投稿動画ではありません。

20MB目標の例 実測出力バイト数 実測出力時間
1パス 19,039,954 90.005秒
2パス 19,115,005 90.005秒

この入力では両方とも20,000,000バイト以内でした。2パスの方が必ず小さくなるという結果ではなく、他の入力の成功率も測っていません。

旧版の8192を使ったMB換算、追跡できない±30%・±5%の誤差、古いプラン表、投稿成功の保証を訂正しました。長さの取得に失敗すると推定値で処理を続けるWindowsバッチは撤去しました。計算例はDiscordへの実投稿試験ではなく、全端末での完走を証明するものでもありません。

合成入力を使ったコマンド確認記録では、入力条件・実際の出力容量・長さ・検査結果を確認できます。これは掲載条件での動作確認で、実際の共有動画の画質や投稿成功率ではありません。