Синхронизация переведенных субтитров

У меня есть друг, который не понимает по-английски, и он хочет посмотреть 24. Я скачал для него, но пока английские субтитры идеальны, некоторые арабские субтитры не синхронизируются правильно.

Вот часть английских субтитров к 5 серии 6 сезона ( 24 - Day 6 - [6x05]_en.srt):

английские субтитры

Теперь арабский скриншот того же диалога ( 24.S06E06.720p.WEB-DL.DD5.1.H264-HDB.srt):

арабские субтитры

(Кодировка неправильная, поэтому буквы отображаются так, но это не важно, видеоплеер их правильно читает.)

Итак, что я ищу, это бесплатное программное обеспечение, которое работает на Xubuntu 14.04 64-бит (Wine в порядке), что позволило бы мне легко синхронизировать арабские субтитры на основе английских субтитров, редактировать его, когда мне нужно, и читать кодировку правильно.

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

Мне ничего не приходит в голову, лично я бы добавил видео или вырезал видео с помощью ffmpeg, чтобы субтитры синхронизировались с видео.
Что хотите «синхронизировать» с чем, и что вам нужно отредактировать? Я вижу 3 пункта: число, временной интервал, предложение.
вы можете синхронизировать с помощью XBMC, у него есть функция, которая будет показывать субтитры на 10 секунд раньше или позже. Я думаю, что простая попытка синхронизации с помощью другого файла потерпит неудачу, потому что иногда предложение будет разделено на два предложения (и, следовательно, две отдельные временные метки) на одном языке, но будет иметь только одно предложение и временную метку на другом языке.
@FranckDernoncourt, как ты это делаешь? не могли бы вы показать простой пример
@JanDoggen Я имею в виду, что субтитры должны отображаться, когда актер произносит слова, а не до или после этого.
@Snicksie Я использую smplayer, у него тоже есть эта опция, чтобы отложить или увеличить скорость субтитров, проблема в том, что субтитры перепутались, иногда они быстрые, иногда мне нужно их откладывать, поэтому мне нужно следить за каждым предложение, чтобы увидеть, где оно подходит
@Fischer Конечно, добавлено в качестве ответа.

Ответы (3)

Как обычно, рекомендую perl-решение.

Установив модуль CPAN под названием Subtitles, вы получите утилиту командной строки под названием subs .

Эта утилита может выполнять различные задачи с субтитрами, одна из них — линейные преобразования субтитров. Линейное преобразование можно использовать для синхронизации файла субтитров с произношением или изменения (преобразования) синхронизации субтитров.

Основная логика такова:

  • найти две точки (одну в начале фильма и вторую в конце)
  • получить реальное (правильное) время для них
  • получить то же самое время из вашего неправильного файла субтитров
  • запустить subsкоманду с аргументами
  • и все готово, и вы получаете правильно синхронизированные субтитры

например

subs -p first_correct_time first wrong_time_from_your_subs -p sec_corr_time second_wrong_time filename.srt

Например, для вашего снимка экрана команда должна быть

subs -p 00:08:01.240 00:05:41.358 -p another two_times filename.srt

и вы получите файл субтитров с правильной синхронизацией.

Ты читаешь мои мысли? Я собирался задать на askubuntu вопрос о том, как сделать это с помощью Perl, но передумал. И попросил софт. Завтра обязательно попробую. Спасибо
@Fischer Надеюсь, вы найдете его очень полезным инструментом;)

Вы пробовали редактировать субтитры ? Я использую его в Windows, и у него есть много вариантов синхронизации субтитров. Визуальная синхронизация позволяет редактировать субтитры, глядя на положение на видео. У него даже есть возможность перевода субтитров. Я уже создал краткий учебник, вы можете проверить его здесь , если хотите.

когда я нажимаю, чтобы загрузить версию для Linux, она больше недоступна, я попробую версию для Windows на вине и дам вам знать
Многие медиаплееры также имеют возможность сделать то же самое. Например, в SMPlayer просто нажмите кнопку Y или G, чтобы перейти к следующей/предыдущей строке субтитров, таким образом, вам не нужно ничего синхронизировать.
я знаю, но, пожалуйста, прочитайте мой комментарий выше, кроме того, я ищу быстрый способ сделать это без необходимости смотреть весь эпизод
Это не так. Вам нужно исправить только первую строку, остальные будут скорректированы соответствующим образом.
некоторые эпизоды такие, другие просто перепутаны, никогда не знаешь когда появятся субтитры, некоторые с задержкой, другие нет, это не то, что я задержу 1 с, и все будет исправлено, нет, я хотел, чтобы это было так просто, и у меня есть смплеер
Да, это может быть проблемой. Хорошо, а каков источник ваших субтитров? Я использую subscene.com и всегда могу найти идеальные субтитры.

Вместо этого вы можете использовать FFmpeg для изменения видео, чтобы субтитры синхронизировались правильно:

да, я знаю, что такое ffmpeg, и мне, возможно, придется использовать ваше решение, если нет более быстрых способов