Скрипт для синхронизации субтитров
Тем, кто готовят релизы сериалов, знакома ситуация, когда HDTV пришёл c одними таймингами, WEB-DL с другими, BDRip с третьими. Хорошо, если достаточно сдвинуть все тайминги на фиксированное время, хуже, когда между фрагментами эпизода отбивки разной длины (как в тех же ТБВ и Дискавери), совсем паршиво, когда рассинхрон пропорционально возрастает. Первое лечится легко прямо на ноте, для второго удобнее брать сторонний софт типа Aegisub, удобного решения третьего не встречал. Кроме того, однократная корректировка плоха тем, что если захотелось потом что-то поправить в переводе, приходится либо дублировать изменения, либо пересинхронизировать.
Поэтому в своих релизах мы уже некоторое время используем небольшой скрипт на python 3, позволяющий проводить все эти изменения в батч-режиме. Мы решили, что он может пригодится и другим, поэтому выложили его сюда: https://github.com/thenooniensoong/subshift
Использование простое: для каждого преобразуемого файла готовится отдельный конфиг, в первой строчке которого указывается исходный файл, во второй результирующий, на следующих – номера ключевых титров и нужный для них тайминг через пробел или табуляцию. В качестве ключевых титров удобно брать первые титры после отбивок, всяких заставок и т.п.
После обработки тайминги ключевых титров будут взяты из конфига, всех остальных – пропорционально откорректированы.
Например, для преобразования 14 серии Discovery из AMZN в NF использовался такой конфиг:
StarTrek.Discovery.S01E14.WEBRip.TeamNotDead.srt
Star.Trek.Discovery.S01E14.The.War.Without.The.War.Within.1080p.NF.WEBRip.DD5.1.x264-NTb.srt
1 00:00:12,011
182 0:10:05.605
184 0:11:43.828
370 0:22:50.452
795 00:47:29,930
796 0:47:55.331
Поэтому в своих релизах мы уже некоторое время используем небольшой скрипт на python 3, позволяющий проводить все эти изменения в батч-режиме. Мы решили, что он может пригодится и другим, поэтому выложили его сюда: https://github.com/thenooniensoong/subshift
Использование простое: для каждого преобразуемого файла готовится отдельный конфиг, в первой строчке которого указывается исходный файл, во второй результирующий, на следующих – номера ключевых титров и нужный для них тайминг через пробел или табуляцию. В качестве ключевых титров удобно брать первые титры после отбивок, всяких заставок и т.п.
После обработки тайминги ключевых титров будут взяты из конфига, всех остальных – пропорционально откорректированы.
Например, для преобразования 14 серии Discovery из AMZN в NF использовался такой конфиг:
StarTrek.Discovery.S01E14.WEBRip.TeamNotDead.srt
Star.Trek.Discovery.S01E14.The.War.Without.The.War.Within.1080p.NF.WEBRip.DD5.1.x264-NTb.srt
1 00:00:12,011
182 0:10:05.605
184 0:11:43.828
370 0:22:50.452
795 00:47:29,930
796 0:47:55.331

Вот только не понял: если загружен оригинал в нотабеноид и переводится, могу ли я синхронизировать его на сайте этим скриптом?
скрытые комментарии (1 шт.)
Нет. Это скрипт не для сайта, а для постобработки.
Судя по описанию, штука очень нужная. Ещё бы это было понятно простым людям (не программистам), было бы вообще круто. Python 3, я так понимаю, – это язык программирования, скрипт – это программа на нём написанная. А то, куда этот скрипт засовывать, что там с ним делать, в какой конфиг – это уже фиг разберёшь.
скрытые комментарии (1 шт.)
Видимо, нужно поставить интерпретатор пайтона и запускать через него.
Да ну, люди. А я то думал. Все давно сделано в Subtitle Edit.
«Синхронизация по точкам с помощью других субтитров». Зачем мучаться? Если кому-то что-то нужно помочь, пишите.
скрытые комментарии (6 шт.)
Ключевые слова – «в батч-режиме».
И? Зачем доступ к интернету, когда есть программа?)
Это юмор скорее всего. Ещё одно непонятное слово из той же оперы))
А SE рулит, я им тоже пользуюсь, но не весь функционал пока изучил.
Кому-то нравится при каждой правке перевода тыкать мышкой в оконном интерфейсе, кому-то удобнее просто запустить скрипт.
Мне не только нравится, мне еще понятней просто. Зачем записывать отличия субтитров, когда там сразу высвечиваются оба? Сравнил, пару раз кликнул, и никаких путаниц с 00:03:24,49878938 и т.д.
Но, спасибо за альтернативный вариант и вы просто большой молодец, что додумались. Может, вскоре додумаетесь, как творить тоже самое, только на сайте.
Еще раз: сделали перевод, синхронизировали под два релиза. Через некоторое время вычистили перевод (мало ли, выяснилось, что фраза, брошенная пару серий назад, имеет чуть другой смысл, или просто накатил приступ перфекционизма). В случае скрипта достаточно просто еще раз его запустить, вся работа по синхронизации уже была проделана и сохранена в конфиге.