Сделать субтитры к фильму
Я, как известно, любые фильмы, независимо от страны происхождения и языка, смотрю в оригинале - с субтитрами. Чтобы смотреть эти фильмы с женой, если картина не на испанском, мне нужны русские субтитры. И если на Netflix русские субтитры обычно есть, то на многих других стримингах русских субтитров нет, а есть английские и субтитры на каких-то других языках.
И я некоторое время назад озадачился вопросом, как сделать русские субтитры к фильму, если уже есть субтитры, например, на английском. (На самом деле подходит практически любой язык, тут главное - чтобы была сделана разметка.)
Я перебрал разные варианты и в результате остановился на бесплатной программе, с помощью которой эта задача выполняется буквально на раз-два с отличным результатом!
Программа называется Subtitle Edit, она бесплатная и с открытым исходным кодом - вот её страница в Github, а вот страница с релизами для скачивания.
Как это всё работает.
Открываете программу.
В ней открываете фильм, в который встроены хоть одни субтитры.
Вам показывают файл субтитров (если их несколько, то можно выбрать конкретные субтитры) и то, как они демонстрируются в ролике.
Дальше делаем перевод на нужный язык. Это меню Translate - Auto-translate. Там надо задать языки - оригинал и перевод.
И выбрать движок перевода - там выбор очень большой. От всяких Google Translate и Deepl (API) до ИИ (через API), также тут можно установить локальные модели LLM через llama.cpp.
Лучший перевод (наименее "машинный", адаптированный) даёт ChatGPT, но для его использования нужен соответствующий API. Он платный - положить деньги на счёт и получить API key можно здесь, - но каких-то 10 евро хватит, судя по всему, на сотню фильмов: я положил 10 евро, сделал русские субтитры к десятку фильмов, и у меня на счету сейчас больше 9 евро.
В движке выбираете ChatGPT (или любую другую модель, с которой вы работаете), вбиваете свой ключ API - ну и всё, запускаете перевод.
Сразу отвечаю на вопрос, можно ли вытащить из этой программы субтитры, например, на английском, и подсунуть их ChatGPT для перевода, чтобы не возиться с API? Можно, но целиком он вам их не переведёт (на стартовой платной версии) - придётся переводить по кускам и склеивать. Поэтому на порядок проще - через API.
Запустили, он будет построчно это переводить где-то минут 5-7 (для полуторачасового фильма).
После окончания перевода надо нажать "ОК", а потом в программе File - Save as - сохранить полученный файл с русскими субтитрами в формате srt, дав ему точно такое же имя, как у видеоролика - тогда практически любой плеер автоматически подхватит эти субтитры при воспроизведении фильма.
Вот готовый перевод, остаётся только сохранить в отдельном файле.
Также здесь можно встроить полученные субтитры прямо в файл с фильмом, причём там не будет делаться перекодировка.
Для этого нужно зайти в меню Video - Add/remove embedded subtitles. Там в окошке нажать кнопку +Add, выбрать на диске полученный файл srt с русскими субтитрами и нажать Generate.
Новая дорожка субтитров будет добавлена за несколько секунд, и теперь у вас есть фильм со встроенной русской дорожкой субтитров.
Как видите, всё это делается просто и быстро.
Переводить можно и нужно, и даже классику переводить заново. Ибо тогда в прошлом их переводили люди уровня МГИМО-финишед или руководствуясь вдохновением, как Володарский или как его там звали. Или даже если знали уличный жаргон, но не уловили литературные, жизненные, штамповые смыслы, естественные для национальной аудитории, но не видимые для не знакомых для этой средой иностранцев. Из-за этого смыслы и многослойные задумки и аценты режиссеров и сценаристов терялись. Потом читаешь оригинал, а там вообще другое. Или под другим углом.
1. Когда я какую-то фразу не расслышал, я резко жму на паузу что бы понять о чем речь, но уже поздно - фрагмент субтитров уже проскочил и нужно перематывать что бы прочитать что там было написано, а это очень неудобно. В результате я понял что мне нужно что бы одновременно с текущим фрагментом субтитров показывался еще и предыдущий.
2. Отображение субтитров одновременно на двух языках.
В итоге я в какой-то момент себе даже специальный проигрыватель навайбкодил, в котором пытался решить эти проблемы. habrastorage.org
(на гитхабе тоже есть, но вайбкодил три года назад - с тех пор прогресс в вайбкодинге ушел далеко вперед, надо переделывать)
Только сейчас до меня дошло что наверно надо было с первым пунктом проще поступить - сделать скрипт для перекодировки тайм-стэмпов. 🤦
А для второго кажется есть какой-то проигрыватель который это поддерживает, по крайней мере на андроиде.
Главная боль - это перескакивание назад на точное количество секунд, что бы можно было повторить один фрагмент несколько раз и не ждать пока лишнее воспроизводится. Эта была киллер-фича моего "вайбкодерского проекта"
Главная боль - это перескакивание назад на точное количество секунд, что бы можно было повторить один фрагмент несколько раз и не ждать пока лишнее воспроизводится. Эта была киллер-фича моего "вайбкодерского проекта"
На андроиде мне известен только один - MX Player.
А субтитры пока не вижу как одновременно и текущий и предыдущий фрагмент отображать.
И мне это для фильмов нужно - через ютуб не вариант.
Программа размещает в одном файле титры на разных языках, один под другим, учитывая разную длину показа субтитров разных языков.
Программа простенькая, своего сайта не имеет, где скачал уже не помню.
Но в сети находятся онлайн аналоги, например этот.
[D] — переход на предыдущий кадр. Можно несколько раз нажать.
:)
сначала думал, он может без субтитров вообще, но ему нужны существующие субтитры.
Может быть интересно, на Нетфликс бывают фильмы с неподходящим языком субтитров.
Но добавлю еще одну важную вещь. Та же программа может генерировать субтитры, если в оригинале нет вообще никаких субтитров (причем на множестве языков). После чего созданные субтитры переводятся на русский (или другой язык) указанным способом.
И, если не ошибаюсь, она также может скачивать субтитры с OpenSubtitles. А если их к фильму нет, то можно запустить их создание или просто подождать пока не разместят другие.







