Пособие по сабам
Тем, кто занимается обработкой видео, да и просто пользователям, которые ценят комфорт при просмотре фильмов, приходится сталкиваться с субтитрами. Об инструменте, позволяющем создать или отредактировать субтитры в Gnu/Linux пойдет речь далее.
Какие бывают субтитры?
Перед началом работы следует сказать пару слов о теории, чтобы было понятно, о чем, собственно, речь. В Википедии сказано так: «Субтитры (также: сабтитры, от англ. subtitles дословно подписи снизу; (жарг.) сабы, сокращение от «сабтитров») текстовое сопровождение видео, дублирующее или дополняющее звук фильма или передачи. Преимущественно в субтитрах отражена речь персонажей». В общем, это текстовая строчка, которая показывается внизу экрана, с помощью которой дублируются диалоги и иногда поясняют ситуацию, происходящую на экране. Они полезны не только людям со слабым слухом, но и при изучении иностранного языка. Пригодятся и в том случае, когда нельзя найти переведенный фильм, а есть только оригинальная версия, а иногда просто очень хочется просмотреть фильм на языке оригинала, со звуковой дорожкой, не испорченной дубляжем.
Субтитры бывают нескольких видов. Так, в том случае, когда изображение с текстом накладывается на исходное видео при кодировании, субтитры называются
жесткими (Hard subtitles) или
вшитыми. Преимуществом таких субтитров является то, что они будут выводиться всеми без исключения проигрывателями, как программными, так и аппаратными, но вот отключить их нельзя. На DVD изображения с субтитрами, как правило, не вшиваются в файл, а хранятся отдельно (в файлах .sub) пользователь при необходимости может их включить или отключить, но они требуют поддержки со стороны проигрывателей. Такие субтитры на «умном» языке называют
пререндеренными (prerendered). И наконец,
мягкие (soft) или
программные субтитры представляют собой текст, иногда с элементами разметки и эффектами. Они также идут в отдельном файле, но требования к оборудованию у них несколько выше, так как часть процессорного времени уходит на их просчет и прорисовку. Еще одна польза от мягких и пререндеренных субтитров возможность использования нескольких языков.
Среди пользователей наиболее популярны именно мягкие субтитры, так как их легко создавать и редактировать, в том числе и переводить, они меньше в размере, поэтому скачать их можно и при слабом канале. Хотя при создании DVD придется столкнуться и с пререндеренными. Но это не проблема, так как имеющиеся программы позволяют перекодировать субтитры из одного типа в другой. Получить готовые субтитры можно со многих сайтов, введите в Гугле что-то вроде «субтитры к фильмам», и вам предложат миллион тематических сайтов, предлагающих готовые субтитры сразу на нескольких языках и типах. При этом вам могут встретиться файлы следующих типов (расширений):
.ssa/.ass текстовый формат субтитров, который использовался в программе Sub Station Alpha (позднее Subtitle Workshop). Субтитры этого типа могут содержать форматирование: размер букв и гарнитура, цвет, положение символов, а также некоторые видеоэффекты в (затенение, движение, повороты и др.), текст может быть в нескольких кодировках;
.srt текстовый формат субтитров программы SubRip, изначально формат оформление текста не поддерживал, сейчас поддерживается изменение цвета и различные начертания символов;
.smi (.smil) текстовый формат субтитров, основанный на SGML, почти все, что характерно для оформления текста в HTML и CSS, поддерживается и здесь;
.sub/.idx двоичный формат пререндеренных субтитров, применяемый в программе VobSub, иногда называют субтитрами формата Vobsub, хоть это и не очень верно, но зато сразу понятно, о чем речь;
.s2k текстовый формат субтитров, принятый в программе Sasami.
Наиболее популярными являются два формата SRT и SUB, которые подключаются к большинству программ видеопроигрывателей.
Программы для работы с субтитрами
Теперь пора перейти от теории к практике. Вот уже более полгода при работе я использую дистрибутив Kubuntu, привычке изменять пока не собираюсь. Впрочем, большая часть написанного будет действительна и для других дистрибутивов Linux. Чтобы узнать, чем богат Kubuntu по этой части, вводим:
Кроме проигрывателей и всяких библиотек были выданы следующие приложения:
ksubtile (ksubtile.sourceforge.net) редактор субтитров для KDE;
subtitleripper (subtitleripper.sourceforge.net) простой риппер DVD-субтитров, в работе которого необходим transcode;
submux-dvd (www.boutell.com/lsm/lsmbyid.cgi/002188) мультиплексор субтитров, с помощью которого можно добавить их в файлы .vob.
К сожалению, после ввода команды sudo apt-get install ksubtile subtitleripper submux-dvd из всех указанных программ захотел устанавливаться только Ksubtile. Это довольно простой и удобный редактор субтитров, который хорошо интегрируется в среду KDE и позволяет переносить, растягивать и редактировать файлы субтитров SRT и некоторых других форматов субтитров, которые понимает MPlayer. Кроме того, он обеспечивает простой в использовании интерфейс к MPlayer, что позволяет упростить синхронизацию субтитров с фильмом. Единственным его недостатком является отсутствие поддержки кодировок, отличных от английской. Пришлось искать выход из ситуации, и он, естественно нашелся.
Пакеты для работы с мультимедиа я брал с debian-multimedia.org, содержащего большое количество программ (например, мультимедиа-центр Freevo, аналог MythTV), но для Debian. Большая часть из них ставится в Kubuntu без проблем, но все же есть исключения. Набрав в браузере http://packages.ubuntu.com/dapper/, я нашел нужные мне программы. Значит, необходимо просто добавить еще один источник.
Поэтому:
Комментируем следующие строчки (у кого они есть):
И добавляем:
Сохраняем изменения и вводим в консоли:
Снятие субтитров в Linux
После проведенных экзекуций в списке известных apt утилит осталась subtitleripper, но появилась еще
ksubtitleripper. Их и устанавливаем:
Последние две были выбраны, так как они являются рекомендуемыми для subtitleripper.
Вообще, для работы с DVD-дисками в Linux есть отличная программа (точнее, скрипт на Perl)
dvd::rip (www.exit1.org/dvdrip), умеющая в том числе и «грабить» субтитры, но dvd::rip, вероятно заслуживает отдельной статьи, поэтому поговорим о нем как-нибудь в следующий раз. Остановимся пока на subtitleripper и ksubtitleripper. Первый пакет включает в себя 5 консольных утилит
srttool,
subtitle2pgm,
pgm2txt,
vobsub2pgm,
subtitle2vobsub, используя которые, можно конвертировать DVD-субтитры в subrip-текстовый или VobSub-форматы. Поток превращается в файл формата PGM или PPM, а затем распознается и превращается в ASCII с помощью
gocr (jocr.sourceforge.net), который будет установлен в качестве зависимости (для ksubtitleripper обязательной). Для полноценной работы первой понадобится
transcode (www.transcoding.org), которую можно установить, набрав sudo apt-get install transcode.
Чтобы извлечь субтитры в ASCII из VOB-файлов, принадлежащих первому фильму, находящемуся в текущем каталоге, вводим следующие команды:
Процесс это долгий, и при слабом компьютере времени на эту операцию уйдет прилично. На выходе получим файл my_movie_1.srt, содержащий субтитры. Параметров у команд, как видите, немного, объясню только один a 0x20. Фильмы, как помните, могут содержать несколько субтитров, значение 0x20 соответствует первому, 0x21 второму, и так далее. Субтитры в формате VobSub получаются на порядок быстрее, но и весят больше. Сначала извлекаем поток субтитров командой:
И затем перекодируем в формат VobSub:
В документации описаны все возможные варианты и комбинации использования этих утилит. Фронтэнд к subtitleripper для библиотек KDE ksubtitleripper (ksubtitleripper.berlios.de,
рис. 1) позволяет получить файл субтитров из исходных .vob- и .sub-файлов в SRT-формате намного проще, при этом пользователю не нужно запоминать многочисленные параметры. Запускаем, набрав в терминале ksubtitleripper, затем в поле
Vob or Sub Files указываем источник, в
Directory каталог для сохранения файлов и нажимаем OK. Вот и все премудрости. Если gocr не может распознать некоторые буквы, пользователю задается вопрос, параллельно производится проверка правописания. Поддерживается три кодировки UTF8, DOS и стандартная английская. Кстати, субтитры в формате VobSub можно снять и с помощью
mencoder, который входит в состав MPlayer.
Редактирование субтитров с помощью SubtitleEditor
Поискав немного по тематическим сайтам, я нашел подходящую программу с удобным интерфейсом GTK+, с продуманной системой поиска и замены, с помощью которой можно редактировать субтитры, в том числе и на русском языке
SubtitleEditor (kitone.free.fr/subtitleeditor/). Используя SubtitleEditor, можно легко добавлять, редактировать или удалять субтитры, конвертировать частоту кадров, контролировать время и отслеживать ошибки. Поддерживает несколько форматов субтитров (SSA, ASS, SubRip (.srt), MicroDvd (.sub)). Распространяется под лицензией GNU GPL.
В репозитарии Ubuntu нет этой программы, но это не значит, что придется возиться с компиляцией. Открываем файл /etc/apt/sources.list и добавляем в него строки (для Dapper Drake):
После чего обновляем базу и устанавливаем:
Во время установки будет выдано сообщение: «Следующие пакеты невозможно аутентифицировать!» и запрос на продолжение нажимаем Y, ничего страшного.
Если все-таки захотелось немного покомпилировать, распакуйте архив и введите:
Запускаем программу, набрав в терминале subtitleeditor или выбрав соответствующий пункт в меню KMultimedia.
Перед началом работы перейдите в
Options > Preferences и затем во вкладке
Encoding,
нажав
Add, добавьте кодировку. В большинстве случаев используется CP1251, но ради пролетарской солидарности можете добавить еще и KOI8R и другие, начинающиеся на «Cyrillic». Затем, воспользовавшись стрелками, переместите основную кодировку в самое начало списка. При создании субтитров это роли не играет, но при сохранении можно будет указать любую из выбранных кодировок. Для создания нового файла субтитров выбираем
File > New (
Ctrl+N). Чтобы вставить новую запись, выбираем
Edit > Insert After (клавиша
Insert), появится новая строка (
рис. 2).
Название и количество колонок может быть разным, для добавления/удаления новых выберите их во
View > Columns. Выбрав
View > Timing, можно включить предпросмотр видео. Записи нумеруются по порядку, при необходимости можно добавить запись в любое место, сдвинув их вниз. Двойным щелчком мышки по колонкам
start и
end добавляем, соответственно, время начала и окончания показа текущего субтитра, в
duration будет подсчитано время показа. В поле
text вводим текст, который будет выводиться на экран, не забыв нажать на
Enter по окончании ввода. И наконец, в
Style,
воспользовавшись выпадающим списком, выбираем стиль выводимого текста (только для .ssa и .ass). По умолчанию присутствует только один стиль
Default. Для добавления своего стиля выбираем
Tools > Style Editor (
рис. 3).
Пользоваться редактором стилей очень просто: прописываем в
Name название стиля, затем в поле
Fonts выбираем шрифт и эффекты (жирный, подчеркивание и пр.), в
Appearence Color цвет, в
Border толщину рамки, в
Transformations можно настроить некоторые эффекты, в
Aligment выравнивание. Когда все введено, нажимаем
Insert (или
Ctrl+Insert) и создаем новую строку, повторяя все операции сначала. При вводе времени легко ошибиться, и тогда субтитр может перекрываться предыдущим. Для проверки правильности выберите
Tools > Check Time.
После создания нового субтитра его, скорее всего, понадобится синхронизировать с фильмом. Причиной рассинхронизации может быть в том числе и различная частота кадров (framerate) в фильме и созданном файле субтитров. Можно, конечно, использовать возможности видеопроигрывателя. Так, в MPLayer нажатие на
Y переводит субтитры на одну фразу вперед, подгоняя ее к настоящему моменту,
G листает на одну фразу назад, клавиши
Z и
X подгоняют субтитры по времени, а не по порядку фраз. Впрочем, эту проблему легко поправить в SubtitleEditor. Для изменения framerate переходим в
Tools > Change FPS и устанавливаем новое значение в
New (
рис. 4).
Узнать framerate видеофильма очень просто практически любой видеопроигрыватель позволяет просмотреть информацию об открытом файле. Например, при запуске mplayer выдается такая информация:
Аналогичную информацию выдает XINE выберите в настройках
Поток > Информация (
Alt+I), аналогично, при наведении мышкой на видеофайл в Konqueror во всплывающем окне будет показана нужная информация. Если субтитры запаздывают или спешат, то отмечаем время, когда нужно показать субтитр, с которого произошел сдвиг. Затем щелкаем по нужному субтитру и открываем
Edit > Move. В появившемся окне вводим время сдвига, после нажатия на ОК время показа субтитров, идущих следом за редактируемым, будет автоматически пересчитано. В этом же меню есть пункты, позволяющие добавить 100 мс ко времени начала и окончания текущего субтитра, либо только к start, здесь же можно увеличить продолжительность. Для первичной синхронизации субтитров можно воспользоваться также пунктом
Tools > Scale. Вы отмечаете первый и последний номер субтитров, а затем в
Destination время начала и окончания показа выбранной группы. Время будет автоматически перераспределено между всеми выбранными субтитрами. В SubtitleEditor есть еще некоторые полезные функции. Так, выбрав
Tools > Split, можно сохранить субтитры не целиком, а только в выбранном диапазоне с указанием формата. Для объединения субтитров воспользуйтесь
Tools > Join. Имеется и проверка орфографии в
Tools > Spell Sheck, но пока SubtitleEditor не поддерживает русского и украинского.
Есть еще один довольно неплохой редактор субтитров
GNOME Subtitle Editor (GSubEdit gsubedit.sourceforge.net), благо он использует GTK-интерфейс, его можно рекомендовать для тех, кто предпочитает среду Gnome.
Как видите, в Linux есть все что нужно тем, кто хочет работать с субтитрами. И хотя некоторые программы еще не достигли «релизов с большими номерами», они уже вполне готовы к употреблению.
Сейшелы
Linux forever!
|