在 FFmpeg 中映射不同的流,这是相同的吗?工作?

Map different streams in FFmpeg, is this identical? And working?

我在 Windows 10(命令行)上使用 FFmpeg。我想重新编码视频:

  1. 视频流 -> x265 CRF 20
  2. 音频流 1 -> AAC 立体声 128k
  3. 音频流 2 -> AAC 立体声 96k
  4. 字幕 1 -> 复制
  5. 字幕 2 -> 复制
  6. 字幕 3 -> 删除

我只是想知道这三行代码是否给出相同的结果。如果他们三个都在工作? ^^

ffmpeg -i input.mkv
-map 0 -map -0:s:2
-c:v libx265 -crf 20
-c:a:0 aac -b:a:0 128k
-c:a:1 aac -b:a:1 96k
-c:s copy
output.mkv
ffmpeg -i input.mkv
-map 0 -map -0:s:2
-c copy
-c:v libx265 -crf 20
-c:a:0 aac -b:a:0 128k
-c:a:1 aac -b:a:1 96k
output.mkv
ffmpeg -i input.mkv
-map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4
-c:v libx265 -crf 20
-c:a:0 aac -b:a:0 128k
-c:a:1 aac -b:a:1 96k
-c:s copy
output.mkv

第一个是运行,不过至少要等一天才能知道结果。 ;)

谢谢!

前两个命令是等价的。所以,是第三个,如果流是按照你问题中列出的顺序。

只有当输入是立体声时,音频输出才会是立体声。否则添加-ac 2