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