哪个 ffmpeg 命令行与 YouTube 使用的命令行匹配?

哪个 ffmpeg 命令行与 YouTube 使用的命令行匹配?

我正在尝试使用 YouTube 用于 H.264/MP4 容器质量等的相同命令行。我一直在努力将视频转换为多种格式、比例、大小,并调整比特率和音频速率以匹配 YouTube 所说的他们使用的速率。

简而言之,我使用的如下:

-pix_fmt yuv420p -profile:v baseline -level 3.0 -acodec libfaac -ar 44100 -ac 2 -ab 192k -aspect 16:9 -r 24000/1001 -movflags +faststart

现在,如果我要详细说明为什么这些值是这样的,您应该首先看看 YouTube 自己告诉我们他们在这里使用了什么。

让我们详细了解一下

  1. moov atom 在文件前面(快速启动)
  2. 声道:立体声或立体声 + 5.1
  3. 采样率 96khz 或 48khz
  4. 逐行扫描(无隔行)
  5. 高调
  6. 2 个连续的 B 帧
  7. 封闭式 GOP。帧速率减半的 GOP。
  8. 中美洲及加勒比地区航空委员会
  9. 色度子采样:4:2:0
  10. 帧速率
  11. YouTube 使用 16:9 宽高比的播放器。
  12. 音频编解码器:AAC-LC

在 ffmpeg 的命令行中,这些变成以下内容。

  1. -movflags +faststart
  2. -ac 2
  3. -ar 48000
  4. 不确定这个命令是什么。(FFMPEG 默认编码是渐进的。)
  5. -profile:v high -level 4.0
  6. -bf 2(FFMPEG 的默认值为 16。)
  7. -g 12-g 15根据 YouTube 的 FPS 而变化。(默认值 12 适用于 24-25 fps。对于 NTSC 和 30 fps,请选择 15。* FFMPEG 选项:-g,不确定 YouTube 的默认 FPS 是 24 还是 30。我假设 24,因为默认值 12 是帧速率的一半,如果帧速率为 30,则默认值为 15。)
  8. -coder 1(默认情况下,CABAC 是 x264 使用的熵编码器。)
  9. -pix_fmt yuv420p(我认为每个人都需要添加这个强制性要求,否则所有非基于 FFmpeg 的播放器都不支持正确解码 YUV 4:2:2 或 YUV 4:4:4。所以需要 yuv 4:2:0。)
  10. -r 24000/1001(假设 YouTube 的默认帧速率为 24。)
  11. -aspect 16:9
  12. -acodec libfaac

但我知道我可能遗漏了一些命令,或者需要更改,如果有人愿意帮忙的话。纠正/告诉我我需要更改/添加什么。

因为我想使用基线配置文件,所以我不在命令行中使用 CABAC、GOP 或 B 帧,因为它们都将被禁用且变得无关紧要。

相关内容