1.4. Субтитры и OSD
Пред. | Глава 1. Введение | След.

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

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

- VOBsub

- OGM

- CC (closed caption[скрытые титры])

- MicroDVD

- SubRip

- SubViewer

- Sami

- VPlayer

- RT

- SSA

- PJS (Phoenix Japanimation Society)

- MPsub

- AQTitle

- JACOsub

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

- MPsub: `-dumpmpsub`

- SubRip: `-dumpsrtsub`

- MicroDVD: `-dumpmicrodvdsub`

- JACOsub: `-dumpjacosub`

- Sami: `-dumpsami`

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'ы

  URL | Comment
  --- | ---
  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. нажмите любую меню-кнопку, которую Вы определили

Пред. | Уровень выше | След.
1.3. Как насчёт GUI? | Начало | 1.5. RTC