Как добавить дополнительный поток субтитров к файлу “.ts”?

Вопрос или проблема

У меня есть файл .ts, который является записью спутникового (DVB) телевидения. Однако поток субтитров в нем не синхронизирован со звуком.

С помощью TSDoctor я извлек субтитры в файл .srt.

Я загрузил его в “Subtitle Edit” и смог экспортировать в формате VobSub.

Теперь я хочу добавить это как еще один поток субтитров в мой файл .ts без повторного кодирования. Я едва знаю, что делаю с FFmpeg, но, почитав темы на Super User, я нашел эту команду, и она почти то, что мне нужно:

ffmpeg -i "V808.ts" -i "V808.[2357](41001ms).idx" -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s dvbsub -metadata:s:s:0 language=eng OUTPUT.ts

Но она заменяет существующие потоки рассказчика и (некорректные) субтитры. Как я могу сохранить их и просто добавить еще один поток?

Может ли кто-то подтвердить, что этот подход не повторно кодирует поток? Я не хочу, чтобы это происходило, если это возможно.

Обновление
После того как я еще поискал темы на superuser, я получил следующую команду, и она сохраняет все мои существующие потоки и добавляет один дополнительный поток субтитров dvb.

ffmpeg -probesize 60M -analyzeduration 60M ^
-i "V808.ts" ^
-i "V808.[2357](41001ms).idx" ^
-map 0 -map 1 -vcodec copy -acodec copy -c:s:0 copy -c:s:1 dvbsub ^
-metadata:s:s:0 language=eng -metadata:s:s:0 handler_name=Bad -metadata:s:s:0 title=Bad ^
-metadata:s:s:1 language=eng -metadata:s:s:1 handler_name=Good -metadata:s:s:1 title=Good ^
OUTPUT.ts

Я не совсем понимаю, как работает карта, но это работает. Я надеялся, что два потока субтитров будут иметь разные названия (“Good” и “Bad”), но при просмотре в VLC и на моем тюнере enigma2 этого не происходит.

Любые другие подходы к решению этой проблемы будут очень признательны.

Ответ или решение

Чтобы добавить дополнительный поток субтитров к файлу .ts, не перекодируя его, можно использовать инструмент FFmpeg. Давайте я объясню процесс, включая ваши требования и некоторые нюансы.

Шаги для добавления дополнительного потока субтитров

  1. Подготовка файлов: Убедитесь, что у вас уже есть:

    • Файл .ts с основным контентом.
    • Файл с субтитрами в формате VobSub (обычно это два файла: .idx и .sub).
  2. Использование FFmpeg: Откройте терминал или командную строку и выполните следующую команду:

ffmpeg -probesize 60M -analyzeduration 60M ^
-i "V808.ts" ^
-i "V808.[2357](41001ms).idx" ^
-map 0 -map 1 -vcodec copy -acodec copy -c:s:0 copy -c:s:1 dvbsub ^
-metadata:s:s:0 language=eng -metadata:s:s:0 handler_name=Bad -metadata:s:s:0 title=Bad ^
-metadata:s:s:1 language=eng -metadata:s:s:1 handler_name=Good -metadata:s:s:1 title=Good ^
OUTPUT.ts

Пояснения к команде

  • -probesize 60M -analyzeduration 60M: Эти параметры помогают FFmpeg корректно анализировать входящий файл .ts, особенно если он большой или имеет сложную структуру.
  • -i "V808.ts": Указывает основной видеофайл.
  • -i "V808.[2357](41001ms).idx": Указывает файл VobSub для субтитров.
  • -map 0 -map 1: Эти параметры указывают, что вы хотите сохранить все потоки из первого файла (0) и добавить все потоки из второго файла (1).
  • -vcodec copy -acodec copy: Указывает FFmpeg копировать видеопоток и аудиопоток без перекодирования.
  • -c:s:0 copy -c:s:1 dvbsub: Здесь вы сохраняете первый поток субтитров без изменений, а второй поток субтитров добавляется как поток DVBSub.
  • -metadata:s:s:X ...: Эти параметры задают метаданные для потоков субтитров, такие как язык, имя обработчика и заголовок.

Учтите следующее

  • Если вы хотите, чтобы ваши субтитры отображались с различными названиями в медиаплеерах, необходимо убедиться, что метаданные настроены правильно. Значения handler_name и title являются важными для различения потоков.
  • Для просмотра субтитров с нужным именем используйте медиаплееры, которые поддерживают отображение метаданных, например, VLC или другие.

Итог

Этот подход позволяет вам добавить новый поток субтитров к .ts файлу без перекодирования существующих потоков. Теперь у вас есть один файл с несколькими потоками субтитров, которые можно использовать как вам удобно. Если потребуется дополнительная помощь, не стесняйтесь задавать вопросы!

Оцените материал
Добавить комментарий

Капча загружается...