多个字幕轨道未编码到 mov 文件中

Multiple subtitle tracks are not encoded into mov file

我正在尝试编译一个包含多个音轨和字幕轨道以匹配的 mov 文件。不幸的是,只有第一条字幕轨道出现在 Quicktime 中(适用于 Apple 设备)。看着它编译 - 似乎第二个字幕轨道没有使用 tx3g 格式编码

命令

ffmpeg \
-i input1.mp3 \
-i input2.mp3 \
-loop 1 \
-i black.png \
-i eng.srt -i zh.srt \
-map 0 -map 1 -map 2 -map 3 -map 4 \
-c:a aac \
-c:v libx264 -pix_fmt yuv420p -shortest \
-c:s:0 mov_text \
-tag:s:s:0 tx3g \
-c:s:1 mov_text \
-tag:s:s:1 tx3g \
-metadata:s:s:0 language=eng -metadata:s:s:1 language=chi \
-metadata:s:a:0 language=eng -metadata:s:a:1 language=chi \
output.mov

部分输出

    Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874)
Metadata:
  encoder         : Lavc57.89.100 mov_text
Stream #0:4(chi): Subtitle: mov_text
Metadata:
  encoder         : Lavc57.89.100 mov_text

两个字幕都已编码,但标签语法错误。由于编解码器标签仅适用于流,因此不应出现初始 s。另外,因为是同一个编码器,所以可以应用全局字幕编码器。

所以,

-c:s:0 mov_text \
-tag:s:s:0 tx3g \
-c:s:1 mov_text \
-tag:s:s:1 tx3g \

变成

-c:s mov_text \
-tag:s:0 tx3g \
-tag:s:1 tx3g \

可以进一步简化为

-c:s mov_text \
-tag:s tx3g \

当然,不确定 QT 是否因此而失败。