YouTubeオススメのffmpegのエンコードオプション設定例

# YouTube公式のオススメ設定でエンコードする

[こちら](https://support.google.com/youtube/answer/1722171?hl=ja)にYouTube公式のエンコード設定が乗っていたのですが、ffmpegの細かい設定方法が調べないとよくわからなかったので、すぐ使えるようにまとめてみました。

すぐ使いたい人はコピペを用意したので[ここをクリック](#コピペで使えるコード)

## 基本的なエンコード設定

|  | 推奨設定 |
| :--- | :---: |
| コンテナ | MP4 |
| 音声コーデック | AAC | 
| 動画コーデック | H.264 |
| アスペクト比 | 16:9|

## コンテナの設定

| MP4の設定 | 対応するffmpegのオプション|
| :--- | :---: |
| ファストスタート |  -movflags faststart |


## 動画コーデックの詳細設定

| H.264の設定 | 対応するffmpegのオプション|
| :--- | :---: |
| プログレッシブ スキャン | デフォルト |
| ハイ プロファイル | -profile:v high -level:v 4.0 |  
| 2 連続 B フレーム | -b_strategy 2 -bf 2 |
| クローズド GOP（フレームレートが半分の GOP）| -flags cgop |
| CABAC | -coder ac |
| クロマ サブサンプリング 4:2:0| -pix_fmt yuv420p |
| 可変ビットレート| -crf 23 -maxrate 1M (値は下記参照) |

### 動画ビットレートのYouTubeオススメ

#### SDR 動画の場合
| タイプ | 標準フレームレート(24, 25, 30) |  高フレームレート(48、50、60) 
| :--- | :---: | :---: |
| 2160p（4k） | 35～45 Mbps | 53～68 Mbps|
| 1440p（2k） | 16 Mbps | 24 Mbps |
| 1080p | 8 Mbps | 12 Mbps |
| 720p | 5 Mbps | 7.5 Mbps |
| 480p | 2.5 Mbps |4 Mbps |
| 360p | 1 Mbps | 1.5 Mbps |

#### HDR 動画の場合
| タイプ | 標準フレームレート(24, 25, 30) |  高フレームレート(48、50、60) 
| :--- | :---: | :---: |
| 2160p（4k） | 44〜56 Mbps| 66～85 Mbps|
| 1440p（2k） | 20 Mbps | 30 Mbps |
| 1080p | 10 Mbps | 15 Mbps|
| 720p | 6.5 Mbps | 9.5 Mbps |

## 音声コーデックの詳細設定

| AACの設定 | 対応するffmpegのオプション|
| :--- | :---: |
| サンプルレート: 96 khz または 48 khz| -ar 48000 |
| ビットレート | -b:a 384k （値は下記参照）|

### 音声ビットレートのYouTubeオススメ

| タイプ | 音声ビットレート |
| :--- | :--- |
| モノラル | 128 kbps |
| ステレオ | 384 kbps |
| 5.1 | 512 kbps |

## コピペで使えるコード

ファイル入出力のinput.mp4とoutput.mp4の部分は適宜環境に合わせて変えてください。下記の設定例は音声がステレオの場合になっています。

### 標準フレームレート(24fps, 25fps, 30fps)の場合

#### SDR動画360p、通常フレームレートの場合

```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 1M -bufsize 2M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画480p、通常フレームレートの場合

```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 2.5M -bufsize 5M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画720p、通常フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 5M -bufsize 10M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画1080p、通常フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 8M -bufsize 16M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画1440p(2K)、通常フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 16M -bufsize 32M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画2160p(4K)、通常フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 45M -bufsize 90M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画720p、通常フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 6.5M -bufsize 13M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画1080p、通常フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 10M -bufsize 20M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画1440p(2K)、通常フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 20M -bufsize 40M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画2160p(4K)、通常フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 56M -bufsize 112M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

### 高フレームレート(48fps, 50fps, 60fps)の場合

#### SDR動画360p、高フレームレートの場合

```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 1.5M -bufsize 3M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画480p、高フレームレートの場合

```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 4M -bufsize 8M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画720p、高フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 7.5M -bufsize 15M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画1080p、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 12M -bufsize 24M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画1440p(2K)、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 24M -bufsize 48M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### SDR動画2160p(4K)、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 68M -bufsize 136M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```


#### HDR動画720p、高フレームレートの場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 9.5M -bufsize 19M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画1080p、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 15M -bufsize 30M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画1440p(2K)、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 30M -bufsize 60M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```

#### HDR動画2160p(4K)、高フレームレート場合
```bash
ffmpeg -i input.mp4 -movflags +faststart -c:v libx264 -profile:v high -level:v 4.0 -b_strategy 2 -bf 2 -flags cgop -coder ac -pix_fmt yuv420p -crf 23 -maxrate 85M -bufsize 170M -c:a aac -ac 2 -ar 48000 -b:a 384k output.mp4
```


##　終わりに

何かの参考になれば幸いです。