Добавить файл субтитров idx в качестве дополнительного потока к файлу “.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

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

Любые другие подходы к решению этого вопроса будут очень appreciated.

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

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

Вот подробное руководство по выполнению этой задачи:

  1. Проверка потоков: Прежде чем запускать какую-либо команду, убедитесь, что ваш исходный .ts файл и файл idx правильно распознаны FFmpeg. Вы можете проверить потоки следующей командой:

    ffmpeg -i "V808.ts"

    Эта команда выведет информацию о всех видеодорожках, аудиодорожках и субтитрах в файле.

  2. Использование команды FFmpeg: Исправьте вашу команду на следующую:

    ffmpeg -probesize 60M -analyzeduration 60M \
    -i "V808.ts" \
    -i "V808.[2357](41001ms).idx" \
    -map 0 -map 1 -c:v copy -c:a 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
  3. Объяснение параметров:

    • -map 0 и -map 1: Эти параметры означают, что FFmpeg возьмет все потоки из первого файла (V808.ts) и добавит потоки из второго файла (V808.[2357](41001ms).idx).
    • -c:v copy -c:a copy: Эти параметры указывают FFmpeg скопировать видеопотоки и аудиопотоки без перекодирования.
    • -c:s:0 copy -c:s:1 dvbsub: Здесь вы определяете, как обрабатывать субтитры. -c:s:0 copy означает, что вы копируете первый поток субтитров (если он существует), а dvbsub указывает, что вы хотите перекодировать второй поток в формат DVB.
    • -metadata:s:s:0 и -metadata:s:s:1: Эти параметры позволяют установить метаданные для субтитров, такие как язык и заголовок.
  4. Запуск команды: После выполнения команды FFmpeg создаст новый файл OUTPUT.ts с добавленным потоком субтитров в формате dvbsub. Убедитесь, что вы проверили файл, используя VLC или другой медиаплеер, чтобы убедиться, что субтитры отображаются корректно и синхронизированы.

  5. Проблемы отображения в медиаплеерах: Если вы сталкиваетесь с проблемой, что субтитры не отображаются с заданными метаданными, попробуйте открыть файл в различных плеерах или убедитесь, что используете последнюю версию VLC или другого программного обеспечения.

Если у вас возникнут дополнительные вопросы или потребуются дальнейшие уточнения, не стесняйтесь спрашивать!

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

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