Вопрос или проблема
У меня есть субтитры, которые уже закодированы в видео, но они задерживаются на 700 мс.
У меня есть около 50 эпизодов шоу, и это начинает раздражать, что мне нужно каждый раз настраивать задержку субтитров в VLC, когда я хочу его посмотреть.
Как я могу исправить эти видео?
Хотя прошло всего несколько лет, но:
Это работает для неподписанных (не вшитых) субтитров, таких как встроенные srt, ass и подобные.
ffmpeg -i input.mp4 -itsoffset -0.7 -i input.mp4 -map 0:v -map 0:a -map 1:s -c copy output.mp4
Эта команда использует один и тот же файл дважды в качестве входного, но использование -itsoffset -0.7
указывает на смещение временных меток следующего входа на -0.7 секунды. Затем команды map указывают захватить видео и аудио из 0-го входа, у которого нет задержки, и захватить sубтитры из 1-го входа, который имеет смещение.
Если вы получаете субтитры из отдельного файла (с окончанием на .srt
), то самый простой способ – загрузить их на этот сайт, задать задержку в миллисекундах и нажать “Shift”, чтобы скачать новый файл субтитров.
Если вы абсолютно должны использовать программу (а не сайт), то эта страница имеет список ПО (для Windows, OS X и Linux), которое не только задерживает субтитры, но и делает много других полезных вещей. Также есть вопрос на Super User, в котором спрашивают, какой лучший редактор субтитров.
Если субтитры уже вшиты в видео, то ничего сделать нельзя. Однако, раз вы упоминаете, что можете изменить задержку в VLC, это предполагает, что вы используете отдельный файл субтитров.
Ответ или решение
Для решения проблемы задержки субтитров в видео с уже встроенными (или встроенными) субтитрами, необходимо учитывать несколько вариантов, в зависимости от того, как именно представлены ваши субтитры. Давайте рассмотрим пошаговые методы по исправлению задержки в 700 мс.
Решение для видео с встроенными субтитрами
Если субтитры встроены в видео (то есть они "вшиты" и, по сути, не могут быть изменены отдельно от видео), то единственный способ исправить этот вопрос – это перекодировать видео с применением ffmpeg
, популярного инструмента командной строки для обработки мультимедиа. Ниже приведена команда для изменения временной метки субтитров:
ffmpeg -i input.mp4 -itsoffset -0.7 -i input.mp4 -map 0:v -map 0:a -map 1:s -c copy output.mp4
Объяснение команды:
-i input.mp4
: Указывает исходный файл видео.-itsoffset -0.7
: Устанавливает временной сдвиг для второго ввода на -0.7 секунды (то есть сдвинет субтитры вперед на 700 мс).-map 0:v
: Извлекает видео-дорожку из первого ввода (без сдвига).-map 0:a
: Извлекает аудио-дорожку из первого ввода.-map 1:s
: Извлекает субтитры из второго ввода (с учетом сдвига).-c copy
: Копирует все потоки, не перекодируя их.
Используя эту команду, вы получите новое видео с правильно синхронизированными субтитрами.
Решение для отдельных файлов субтитров
Если ваши субтитры находятся в отдельном файле (например, .srt), вы можете воспользоваться онлайн-инструментами или программами для изменения задержки субтитров. Один из наиболее простых вариантов – это использовать Subtitle Sync Shifter:
- Загрузите ваш файл субтитров .srt на сайт.
- Установите задержку в 700 мс.
- Нажмите "Shift" для загрузки исправленного файла.
Этот способ наиболее прост и не требует установки программного обеспечения.
Если вы предпочитаете использовать программное обеспечение, существует множество доступных приложений, позволяющих редактировать субтитры, например:
- Aegisub (для Windows, macOS, Linux) – мощный инструмент для создания и редактирования субтитров.
- Subtitle Edit (для Windows) – поддерживает изменение временных меток и различные форматы субтитров.
- Gaupol (для Linux) – рекомендуется для редакторов субтитров .srt и других форматов.
Заключение
В зависимости от того, как представлены ваши субтитры, у вас есть несколько опций. Если субтитры встроены в видео, использование ffmpeg
– это эффективное решение. Если вы используете отдельные файлы, онлайн-инструменты или программы редактирования будут более удобными и быстрыми для выполнения необходимых изменений. Обязательно тестируйте получившиеся видео или субтитры, чтобы убедиться, что всё работает корректно и задержка устранена.