Несколько дорожек субтитров не кодируются в файл 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 ответ

Решение

Оба субтитра были закодированы, но синтаксис тега неверен. Так как теги кодека применяются только к потокам, начальный 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 выходит из строя из-за этого.

Другие вопросы по тегам