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

时间:2018-07-19 04:58:09

标签: ffmpeg mov

我正在尝试编译具有多个音轨和字幕轨以匹配的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

1 个答案:

答案 0 :(得分:1)

两个字幕均已编码​​,但标记语法错误。由于编解码器标记仅适用于流,因此不应出现首字母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是否失败。