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

C0n*_*0nk 5 youtube ffmpeg

我正在尝试在 H.264/MP4 容器中使用 YouTube 用于质量等的相同命令行。我一直致力于将视频转换为多种格式、比例、尺寸,并调整比特率和音频速率以符合 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
Run Code Online (Sandbox Code Playgroud)

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

那么让我们详细介绍一下

  1. 文件前面的 moov 原子(快速启动)
  2. 声道:立体声或立体声+5.1
  3. 采样率96khz或48khz
  4. 逐行扫描(无隔行扫描)
  5. 高调
  6. 2个连续的B帧
  7. 封闭的共和党。帧速率一半的 GOP。
  8. CABAC
  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 帧,因为它们都会被禁用且不相关。