YouTubeに動画をアップロードする際、適切なエンコード設定をせずに投稿すると再エンコードによる品質低下が起きます。この記事では、YouTubeの推奨仕様に準拠したFFmpegコマンドを解説します。
動作確認: FFmpeg 6.1(ubuntu-latest / GitHub Actions CI検証済み)
YouTube推奨仕様まとめ
| 項目 | YouTube推奨値 |
|---|---|
| 映像コーデック | H.264(MP4推奨) |
| フレームレート | 24, 25, 30, 48, 50, 60 fps |
| 解像度 | 1080p以上推奨(最大8K) |
| 音声コーデック | AAC-LC |
| 音声サンプリングレート | 48kHz |
| 音声チャンネル | ステレオ(2ch)推奨 |
| 音量レベル | -14 LUFS統合ラウドネス |
| コンテナ | MP4(推奨) |
基本コマンド(1080p・H.264)
YouTubeへの最高互換性を持つ設定です。
ffmpeg -i input.mp4 \
-c:v libx264 \
-preset slow \
-crf 18 \
-profile:v high \
-level 4.1 \
-pix_fmt yuv420p \
-movflags +faststart \
-c:a aac \
-b:a 192k \
-ar 48000 \
-ac 2 \
output_youtube.mp4
設定値の意味:
| オプション | 値 | 理由 |
|---|---|---|
-crf 18 | 18(高品質) | YouTubeの再エンコードで品質が下がるため、元動画は高品質に |
-preset slow | slow | CRFと組み合わせると効率よく圧縮できる |
-profile:v high | High | YouTube推奨プロファイル |
-level 4.1 | 4.1 | 1080p/30fps以下はこれで十分 |
-pix_fmt yuv420p | yuv420p | 最大互換性(ブラウザ・スマホ対応) |
-movflags +faststart | — | Web再生時の即時開始 |
-b:a 192k | 192kbps | YouTubeの音声ビットレート上限 |
-ar 48000 | 48kHz | YouTube推奨サンプリングレート |
解像度別推奨ビットレート
YouTubeは映像を再エンコードするため、「YouTubeが再エンコードした後に高品質になる」よう元動画を高めのビットレートで用意します。
SDR(標準ダイナミックレンジ)
| 解像度 | フレームレート | 推奨映像ビットレート | FFmpegコマンド |
|---|---|---|---|
| 4K (2160p) | 24-30fps | 35-45 Mbps | -b:v 40M |
| 4K (2160p) | 48-60fps | 53-68 Mbps | -b:v 60M |
| 1080p | 24-30fps | 8 Mbps | -crf 18 |
| 1080p | 48-60fps | 12 Mbps | -crf 17 |
| 720p | 24-30fps | 5 Mbps | -crf 20 |
| 480p | 24-30fps | 2.5 Mbps | -crf 23 |
CRFモードで全自動(推奨)
ビットレートを手動指定するより、CRFモードの方がシーンに応じて最適化されます。
# 1080p / 30fps 用
ffmpeg -i input.mp4 \
-c:v libx264 -crf 18 -preset slow \
-vf "scale=1920:1080:flags=lanczos,fps=30" \
-c:a aac -b:a 192k -ar 48000 -ac 2 \
-movflags +faststart \
output_1080p.mp4
# 1080p / 60fps 用
ffmpeg -i input.mp4 \
-c:v libx264 -crf 17 -preset slow \
-vf "scale=1920:1080:flags=lanczos,fps=60" \
-c:a aac -b:a 192k -ar 48000 -ac 2 \
-movflags +faststart \
output_1080p60.mp4
音量を YouTube 基準に正規化
YouTubeは音量を自動正規化しますが、事前に正規化することで意図した音量でアップロードできます。
# -14 LUFS に正規化(YouTube基準)
ffmpeg -i input.mp4 \
-af "loudnorm=I=-14:TP=-1.5:LRA=11" \
-c:v copy \
output_normalized.mp4
→ 音量調整ツール(ブラウザ完結)でブラウザ上でも同じ処理が可能です。
ショートパス:既存の動画を最小限の処理でアップロード
すでにH.264でエンコードされた動画は、再エンコードなしでコンテナだけ変換できます。
# MOV → MP4(コーデック変換なし・高速)
ffmpeg -i input.mov -c copy -movflags +faststart output.mp4
# MKV → MP4(コーデック変換なし)
ffmpeg -i input.mkv -c copy output.mp4
H.265(HEVC)でアップロードする場合
H.265はH.264より50%ほどファイルサイズが小さくなりますが、YouTubeは最終的にVP9またはAV1で再エンコードするため、アップロード元としてH.264と品質差はほとんどありません。
ffmpeg -i input.mp4 \
-c:v libx265 -crf 20 -preset slow \
-tag:v hvc1 \
-c:a aac -b:a 192k -ar 48000 \
-movflags +faststart \
output_h265.mp4
-tag:v hvc1 はiOS/macOSでのQuickTime再生互換性のために必要です。
よくある問題と解決策
Q. YouTubeアップロード後に画質が悪くなった
元動画のビットレートが低すぎると、YouTubeの再エンコードでさらに劣化します。-crf 18(H.264)または-crf 20(H.265)以下の高品質設定でエンコードしてください。
Q. 音声が消えている・ずれている
# 音声ストリームの確認
ffprobe -v quiet -print_format json -show_streams input.mp4 | grep codec_type
音声コーデックがYouTube非対応(PCMなど)の場合はAACに変換してください。
Q. 縦動画(ショート向け)の設定
# 9:16縦動画(1080×1920)
ffmpeg -i input.mp4 \
-vf "scale=1080:1920:flags=lanczos" \
-c:v libx264 -crf 18 -preset slow \
-c:a aac -b:a 192k -ar 48000 \
-movflags +faststart \
output_shorts.mp4
ブラウザで今すぐ試す
→ 動画圧縮ツール — ファイルサイズを抑えながらYouTube向けに圧縮
→ 音量調整ツール — -14 LUFSへのラウドネス正規化
→ 動画フォーマット比較 — MP4・WebM・MOV・MKVの選び方
関連リソース
よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。