1.4. Субтитры и OSD

Вместе с фильмом MPlayer может показывать и субтитры. В настоящий момент поддерживаются следующие форматы:

MPlayer может конвертировать вышеперечисленные форматы субтитров (кроме первых трёх) в следующие форматы с помощью соответствующих опций:

MEncoder может выдавать DVD субтитры в VOBsub формате.

Опции значительно различаются для различных форматов:

VOBsub субтитры.  VOBsub субтитры состоят из большого (несколько мегабайт) .SUB файла, и необязательных .IDX и/или .IFO файлов. Использование: если у Вас, например, есть файлы sample.sub, sample.ifo (необязательно), sample.idx - Вы должны указать MPlayer'у опции -vobsub sample [-vobsubid id] (можно указать полный путь). Опция -vobsubid похожа на -sid для DVD, с её помощью, Вы можете выбирать между дорожками субтитров (языками). В случае, если -vobsubid пропущена, MPlayer попытается использовать языки, полученные через опцию -slang и перейти к пункту langidx в .IDX файле, чтобы выбрать язык субтитров. Если и это не удаётся, то субтитров не будет.

Другие субтитры.  Прочие форматы субтитров состоят из единого текстового файла, содержащего информацию о синхронизации, местоположении и тексте субтитра. Использование: Если у Вас есть, например, файл sample.txt, Вы должны указать опцию -sub sample.txt (можно указать полный путь).

Регулировка синхронизации и местоположения субтитров:

-subdelay sec
Задерживает субтитры на sec секунд. Это значение может быть отрицательным.
-subfps RATE
Указывает количество кадров/сек для файла субтитров (вещественное число)
-subpos 0-100
Указывает позицию субтитров.

Если Вы наблюдаете увеличивающуюся задержку между фильмом и субтитрами, используя файл субтитров в формате MicroDVD, наиболее вероятно, что частота кадров у фильма и файла субтитров не совпадают. Пожалуйста, обратите внимание, что формат MicroDVD использует абсолютные номера кадров для синхронизации, и поэтому опция -subfps не может использоваться с этим форматом. Поскольку MPlayer не может угадать частоту кадров для субтитров, Вы должны вручную конвертировать частоту кадров. В каталоге contrib MPlayer'овского FTP сайта есть специальный Perl'овый скрипт для такой конверсии.

О DVD субтитрах, читайте в секции DVD.

1.4.1. Собственный формат субтитров MPlayer'а (MPsub)

MPlayer ввёл в употребление новый формат субтитров, называемый MPsub. Он был разработан Gabucino. По существу, его основная особенность - это использование динамической временной привязки (хотя существует и режим покадровой привязки). Пример (из DOCS/tech/mpsub.sub):

FORMAT=TIME
# первый номер : столько  прождать после того, как исчез предыдущий субтитр
# второй номер : столько секунд показывать текущий субтитр

15 3
A long long, time ago...

0 3
in a galaxy far away...

0 3
Naboo was under an attack.

Как видите, основной целью было сделать простым редактирование/синхронизацию/ объединение/разрезание простым. И, если Вы, например, получили SSA субтитры но они плохо синхронизированы с Вашей версией фильма, Вы просто запускаете

mplayer dummy.avi -sub source.ssa -dumpmpsub
. В текущем каталоге будет создан файл dump.mpsub, содержащий исходный текст субтитров, но в MPsub формате. После этого, Вы можете свободно добавлять/вычитать секунды к/от субтитра.

Субтитры выводятся, используя технику 'OSD', On Screen Display. OSD используется для вывода текущего времени, полос громкости и перемещения, и т. п.

1.4.2. Установка OSD и субтитров

Чтобы использовать возможности OSD/SUB, Вам нужен пакет шрифтов MPlayer'а. Есть много способов их получить:

  • Использовать средство генерации шрифтов в TOOLS/subfont-c. Это законченное средство для преобразования из TTF/Type1/и т. п. шрифтов в mplayer'овские шрифтовые пакеты. (подробности читайте в TOOLS/subfont-c/README)

  • используйте GIMP'овый плагин генерации шрифтов из TOOLS/subfont-GIMP (замечание: также, у Вас должен быть установлен HSI RAW плагин, см. http://realtime.ssu.ac.kr/~lethean/mplayer/ ).

  • используйте TrueType (TTF) шрифт, через библиотеку freetype. Обязательна версия 2.0.9 или выше! Тогда у Вас есть два метода:

    • используйте опцию -font /path/to/sample_font.ttf, чтобы указывать каждый раз путь к TrueType шрифту

    • создайте ссылку:

      ln -s /path/to/sample_font.ttf ~/.mplayer/subfont.ttf

    Если MPlayer был скомпилирован с поддержкой fontconfig, эти методы не будут работать, вместо этого, опция -font ожидает fontconfig'овское название шрифта, и по умолчанию это фонт без засечек (sans-serif). Чтобы получить список шрифтов известных fontconfig'у, используйте fc-list. Пример: -font 'Bitstream Vera Sans'

  • Скачать готовый к употреблению пакет шрифтов с сайта MPlayer'а. Замечание: Доступные в настоящий момент шрифты ограничены до поддержки ISO 8859-1/2, но существуют другие (включая корейские, русские, ISO 8859-8 и др.) сделанные пользователями шрифты в contrib/font секции FTP.

    Шрифт должен содержать соответствующий font.desc файл, который создаёт соответствия между Unicode позицией в шрифте и кодовой страницей субтитра. Другим решением является наличие субтитра в UTF-8 кодировке и использование опции -utf8, или просто обозвать файл субтитра <video_name>.utf и разместить его в каталоге с фильмом. Перекодировка из различных кодировок в UTF-8 может быть осуществлена с помощью программ konwert или iconv.

    Таблица 1.1. Некоторые URL'ы

    URLComment
    ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ ISO шрифты
    ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ различные шрифты, сделанные пользователями
    http://realtime.ssu.ac.kr/~lethean/mplayer/ корейские шрифты и RAW плагин

Если Вы решите использовать не-TTF шрифты, UNZIP'ните скаченный файл в ~/.mplayer или $PREFIX/share/mplayer. Затем переименуйте, или слинкуйте (создайте ссылку) один из каталогов в font (напр.:

ln -s ~/.mplayer/arial-24 ~/.mplayer/font
). Теперь Вы должны увидеть таймер в левом верхнем углу фильма (выключите его кнопкой o).

(субтитры всегда включены, чтобы узнать, как их отключить, читайте страницу man)

У OSD 4 состояния: (переключаются кнопкой o):

  1. полосы громкости + перемещения (по умолчанию)
  2. полосы громкости + перемещения + таймер + позиция в файле в процентах при перемещении
  3. полосы громкости + перемещения + таймер + длина всего фильма
  4. только субтитры

Вы можете изменить действия по умолчанию, установив в нужное значение переменную osdlevel в конфигурационном файле, или используя опцию -osdlevel командной строки.

1.4.3. OSD меню

У MPlayer'а существует целиком определяемый пользователем интерфейс OSD меню.

Замечание

меню Preferences[Настройки] в настоящий момент НЕ НАПИСАНО!

Установка

  1. скомпилируйте MPlayer, указав ./configure параметр --enable-menu
  2. убедитесь, что у Вас установлен OSD шрифт
  3. скопируйте etc/menu.conf в Ваш каталог .mplayer
  4. скопируйте etc/input.conf в Ваш каталог .mplayer, или в системный конфигурационный каталог MPlayer'а (по умолчанию: /usr/local/etc/mplayer)
  5. проверьте и отредактируйте input.conf, чтобы включить кнопки перемещения по меню (это здесь описано).
  6. запустите MPlayer как в следующем примере:

    $ mplayer -menu file.avi

  7. нажмите любую меню-кнопку, которую Вы определили