FFmpegで動画圧縮

FFmpegとFFHub APIを使った動画圧縮の初心者向けガイド。

このガイドでは、FFmpegを使った動画圧縮の方法を、各パラメータの詳細な説明とともに解説します。

基本コマンドの理解

ffmpeg -i input.mp4 -b:v 1M output.mp4

各部分の意味:

パラメータ意味
ffmpeg実行するプログラム
-i input.mp4-iは「入力」を意味し、後にソースファイルを指定
-b:v 1M-b:vは「動画ビットレート」、1M = 1メガビット/秒
output.mp4出力ファイル名(常に最後に指定)

ビットレートとは? 動画1秒あたりに使用されるデータ量です。ビットレートが高い=高画質だがファイルが大きい。ビットレートが低い=ファイルが小さいが画質が低い。

方法1:CRF(初心者におすすめ)

CRF(固定品質係数)は動画圧縮の最も簡単な方法です。品質レベルを選ぶだけ:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
パラメータ意味
-c:v libx264-c:vは「動画コーデック」、libx264はH.264エンコーダー
-crf 23品質レベル(0-51)。低い=高画質、大きなファイル

CRF値ガイド

CRF品質用途
18優秀(ほぼロスレス)重要な動画のアーカイブ
23良好(デフォルト)一般用途
28普通オンライン共有、SNS
33プレビュー、下書き

ヒント: CRF 23から始めましょう。ファイルが大きすぎる場合は28を、画質が低すぎる場合は20を試してください。

方法2:目標ファイルサイズ

特定のファイルサイズが必要な場合は、ビットレートモードを使用:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2M output.mp4

一般的なビットレート値:

  • 500K = 500キロビット/秒(小ファイル、低画質)
  • 1M = 1メガビット/秒(中程度)
  • 2M = 2メガビット/秒(良画質)
  • 5M = 5メガビット/秒(高画質)

エンコード速度:プリセット

-presetオプションはFFmpegのエンコード速度を制御します:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
プリセット速度ファイルサイズ
ultrafast非常に速い最大
fast速いやや大
medium通常(デフォルト)通常
slow遅いやや小
veryslow非常に遅い最小

ヒント: すぐに結果が必要な場合はfastを、最終納品にはslowを使用してください。

解像度を下げる

小さな解像度=大幅に小さなファイル:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
パラメータ意味
-vf scale=-2:720-vfは「動画フィルター」、scaleは動画のリサイズ
-2アスペクト比を維持して幅を自動計算
720目標高さ(ピクセル)(720p)

一般的な解像度:

  • scale=-2:2160 → 4K
  • scale=-2:1080 → 1080p(フルHD)
  • scale=-2:720 → 720p(HD)
  • scale=-2:480 → 480p(SD)

音声も圧縮

音声圧縮を追加してファイルサイズをさらに削減:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
パラメータ意味
-c:a aac-c:aは「音声コーデック」、aacは一般的な音声フォーマット
-b:a 128k音声ビットレート:128キロビット/秒

音声ビットレートガイド:

  • 320k → 高品質音楽
  • 192k → 良品質
  • 128k → 標準(推奨)
  • 96k → 音声向け

完全な例

ベストバランス(推奨)

良画質、適度なファイルサイズ:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

最小ファイルサイズ

画質より共有を優先する場合:

ffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 28 -preset slow -c:a aac -b:a 96k output.mp4

最高画質

品質を保持してアーカイブする場合:

ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

FFHub APIの使用

コマンドをFFHubに送信してクラウドで処理:

curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://your-storage.com/input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4"
  }'

注意: 入力URLを実際の動画URLに置き換えてください。FFHubが処理し、結果のダウンロードリンクを提供します。

クイックリファレンス

目的コマンド
基本圧縮ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
小ファイルffmpeg -i input.mp4 -c:v libx264 -crf 28 output.mp4
高画質ffmpeg -i input.mp4 -c:v libx264 -crf 18 output.mp4
720pにリサイズffmpeg -i input.mp4 -vf scale=-2:720 -c:v libx264 -crf 23 output.mp4
音声付きffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4