Вопрос или проблема
У меня есть файл TS с полным телетекстовым потоком. На странице 888 находятся субтитры.
Мне удалось наложить их так, как я хотел, с помощью ffmpeg -txt_page 888 -i test.ts -filter_complex "[0:s]scale=1920:1080[subs];[0:v][subs]overlay[v]" -map "[v]" -map 0:a output.ts
Тем не менее, многие субтитры отсутствуют, а некоторые появляются на короткое время.
В VLC (который также использует zvbi) все субтитры отображаются правильно.
Что может быть причиной этой проблемы? Есть ли правильный способ это сделать?
PS.: Я не хочу извлекать их в .srt или использовать это как промежуточный этап, а затем накладывать, так как они потеряют некоторые специальные выравнивания. Я хочу встроить вывод zvbi в видео.
Ответ или решение
Проблема, с которой вы столкнулись при наложении телетекстовых субтитров на видеофайл с использованием FFmpeg, может быть связана с несколькими аспектами, включая время отображения субтитров и их синхронизацию с видео. Вот шаги, которые могут помочь вам правильно «сжечь» субтитры в видео, сохранив их временные характеристики.
-
Проверка параметров трансляции: Возможно, проблема заключается в том, что FFmpeg обрабатывает субтитры и видео с разными временными метками. Вы можете попробовать задать параметры временной синхронизации, используя фильтры
setpts
иtrim
. -
Использование других фильтров и параметров:
Попробуйте следующий командный скрипт:ffmpeg -i test.ts -filter_complex "[0:s]scale=1920:1080,setpts=PTS-STARTPTS[subs];[0:v][subs]overlay[v]" -map "[v]" -map 0:a output.ts
Здесь мы используем
setpts=PTS-STARTPTS
, чтобы убедиться, что временные метки субтитров корректно синхронизированы с видео. -
Настройка параметров отображения: Возможно, вам понадобится настроить параметры, отвечающие за время отображения субтитров. Например, можно увеличить время их отображения, если вы заметили, что некоторые из них «исчезают» слишком быстро.
-
Проверка документации: Обязательно ознакомьтесь с документацией FFmpeg, особенно с разделами, касающимися фильтров и работы с субтитрами. Это поможет вам лучше понять, какие параметры могут влиять на вывод.
-
Тестирование с VLC: Проверка работы с VLC может дать вам подсказки о том, как внутри вашего потока обрабатываются субтитры. Если VLC отображает их корректно, возможно, следует проанализировать, какие именно настройки он использует, чтобы попытаться воспроизвести тот же эффект в FFmpeg.
-
Каждый случай уникален: Помните, что ваша проблема может быть вызвана конкретными особенностями вашего потока, поэтому не стесняйтесь экспериментировать с фильтрами и параметрами.
Если все вышеперечисленное не поможет, можно рассмотреть возможность использовать другие инструменты, такие как mkvtoolnix
, для манипуляции с субтитрами на уровне контейнера, если это приемлемо для вашего рабочего процесса.
Надеюсь, эти рекомендации помогут вам добиться необходимого результата с телетекстовыми субтитрами. Если возникнут дополнительные вопросы или потребуется более детализированная помощь, не стесняйтесь обращаться!