# Установка

В файле `README` вы сможете найти короткое руководство по установке. Пожалуйста, сначала прочтите его, а затем вернитесь к оставшимся неясными деталям.

В этой главе я постараюсь провести Вас через процесс компиляции и конфигурации MPlayer'а. Это не просто, но это не обязательно будет сложно. Если Вы заметите какие-то отклонения, от того, что я объясняю, пожалуйста, поищите в этой документации и Вы найдёте ответ. Если Вы увидите ссылку, пожалуйста, проследуйте по ней и внимательно прочитайте её содержимое. Это займёт некоторое время, но это ДЕЙСТВИТЕЛЬНО того стоит

Вам нужна современная система. Под Linux'ом рекомендуются ядра 2.4.x.

## Требуемые программы:

- binutils - рекомендуемая версия - это 2.11.x.

- gcc - рекомендуемые версии: 2.95 и 3.4+. Известно, что 2.96 и 3.0.x генерируют испорченный код. С 3.1 и 3.2 были проблемы, с 3.3. тоже были небольшие проблемы. На PowerPC используйте 4.x+.

- XOrg/XFree86 - рекомендуемая версия - 4.3 или более поздняя. Убедитесь, что также установлен пакет разработки, иначе это не будет работать. Вам необязательно иметь X, некоторые драйверы вывода видео работают и без него.

- make - рекомендуемая версия - 3.79.x или более поздняя. Для сборки XML документации требуется 3.80.

- FreeType - версия 2.0.9 или более поздняя требуется для OSD и субтитров.

- ALSA - необязательно, для поддержки вывода звука через ALSA Требуется минимум 0.9.0rc4.

- libjpeg - необходима для опционального драйвера вывода видео JPEG.

- libpng - необходима для опционального драйвера вывода видео PNG.

- directfb - необязательно, версия 0.9.13 или более поздняя требуется для драйвера вывода видео directfb.

- lame - рекомендуется 3.90 или новее, необходимо для кодирования MP3 аудио c MEncoder,

- zlib - рекомендуется, необходима для сжатых MOV заголовков и поддержки PNG.

- LIVE555 Streaming Media - необязательно, необходимо для некоторых RTSP/RTP потоков.

- cdparanoia - необязательно, для поддержки CDDA

- libxmms - необязательно, для поддержки входных плагинов XMMS. Требуется минимум 1.2.7.

- libsmb - необязательно, для поддержки сетевого протокола SMB.

## Возможности:

- Решите, нужен ли Вам GUI. Если да, прочитайте до компиляции секцию GUI.

- Если Вы хотите установить MEncoder (наш великолепный многоцелевой кодировщик), читайте секцию MEncoder.

- Если у Вас есть V4L совместимый TV тюнер, и Вы хотите смотреть/захватывать и кодировать MPlayer'ом фильмы, читайте секцию TV вход.

- Если у вас есть V4L совместимый Radio тюнер, и вы хотите слушать/записывать MPlayer'ом радиопередачи, читайте секцию Радио.

- Существует изящное OSD Меню готовое для использования. Проверьте секцию OSD Меню.

Теперь соберите MPlayer:

    ./configure
    make
    make install

В этот момент, MPlayer готов к использованию. Проверьте, не содержится ли файл `codecs.conf` в Вашем домашнем каталоге (`~/.mplayer/codecs.conf`) оставленный от предыдущих версий MPlayer'а, и удалите его.

Обратите внимание на то, что если у Вас в `~/.mplayer/` есть файл `codecs.conf`, то встроенный и системный файлы `codecs.conf` будут полностью игнорированы. Не делайте этого, если только Вы не собираетесь развлекаться со внутренностями MPlayer'а, поскольку это может вызвать множество проблем. Если Вы хотите поменять порядок подбора кодеков, используйте опции `-vc`, `-ac`, `-vfm`, и `-afm` либо в командной строке, либо в Вашем конфигурационном файле (см. страницу руководства).

Пользователи Debian могут сами создать .deb пакеты, это очень просто. Просто запустите

    fakeroot debian/rules binary

в корневом каталоге MPlayer'а. Более подробные инструкции см. в разделе Создание Debian пакетов.

Всегда просматривайте вывод `./configure`, и файл `configure.log`, они содержат информацию о том, что будет собрано, а что нет. Возможно Вы захотите просмотреть файлы `config.h` и `config.mak`. Если у Вас стоят какие-то библиотеки, которые не определяются `./configure`, проверьте, что у Вас установлены соответствующие заголовки[header files] (обычно это -dev пакеты) и их версии совпадают. Файл `configure.log` Обычно сообщит Вам, чего не хватает для сборки.

Хотя это не обязательно, но чтобы получить функционирующие OSD и субтитры, должны быть установлены шрифты. Рекомендуемый метод - установка TTF шрифта и указание MPlyer'у использовать его. Подробности, см. в секции Субтитры и OSD.

## Как насчёт GUI?

Для GUI требуется GTK 1.2.x или GTK 2.0 (он не целиком GTK'шный, но панельки - да). Шкуры хранятся в PNG формате, поэтому GTK, libpng (и их части для разработчиков, обычно они называются gtk-dev и libpng-dev) должны быть установлены. Вы можете собрать GUI, указав `--enable-gui` в `./configure`. Затем, чтобы использовать GUI, Вы должны запускать `gmplayer`.

Поскольку MPlayer не содержит ни одной шкуры, Вы должны скачать их, если Вы хотите использовать GUI. См. download page[страницу закачек]. Они должны быть извлечены в системный каталог (`$PREFIX/share/mplayer/skins`), или в `$HOME/.mplayer/skins`. По умолчанию, MPlayer ищет каталог `default` в этих каталогах, но вы можете использовать опцию `-skin newskin`, или директиву конфигурационного файла `skin=newskin`, чтобы использовать шкуру из каталога `*/skins/newskin`.

## Шрифты и OSD

Чтобы насладиться OSD и субтитрами, надо указать MPlayer какой шрифт использовать. Подойдет любой TrueType или специальный растровый шрифт. Тем не менее, рекомендуется использовать TrueType шрифты, поскольку они лучше выглядят, корректно масштабируются до размера фильма, у лучше справляются с различными кодировками.

### TrueType шрифты

Есть два способа заставить работать TrueType шрифты. Первый - указать опцию `-font`, чтобы указать путь к TrueType шрифту из команднов строки. Эта опция будет хорошим кандидатом на помещение в файл конфигурации (для подробностей смотрите страницу man руководства). Второй - создание символической ссылки с именем `subfont.ttf` на выбранный файл шрифта. Либо

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

индивидуально для каждого пользователя, либо одну общесистемную

    ln -s /path/to/sample_font.ttf $PREFIX/share/mplayer/subfont.ttf

Если MPlayer был скомпилирован с поддержкой fontconfig, эти методы не будут работать, вместо этого, опция `-font` ожидает fontconfig название шрифта, и по умолчанию это шрифт sans-serif. Пример:

    mplayer -font 'Bitstream Vera Sans' anime.mkv

Чтобы получить список шрифтов, известных fontconfig, используйте `fc-list`

### Растровые шрифты

Если по каким-то причинам вам необходимо использовать растровый шрифт, скачайте набор таковых с нашего сайта. Вы можете выбирать между различными ISO шрифтами и набором шрифтов созданных пользователями в различных кодировках.

Распакуйте скачанный файл в `~/.mplayer` или `$PREFIX/share/mplayer`. После этого переименуйте каталог или создайте символическую ссылку на него с именем `font`, например:

    ln -s ~/.mplayer/arial-24 ~/.mplayer/font

    ln -s $PREFIX/mplayer/arial-24 $PREFIX/mplayer/font

Шрифты должны иметь соответствующий им `font.desc` файл, отображающий позиции юникод шрифта в кодовую страницу текста субтитров. Другое решение - иметь субтитры, кодированные в UTF-8 и использовать опцию `-utf8` или просто дать файлу с субтитрами такое же, как у видео файла, имя с расширением `.utf`, положив его в один каталог с фильмом.

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

## Codec installation

### Xvid

Xvid свободный, MPEG-4 ASP совместимый видео кодек, особенностями которого являются двухпроходное кодирование и полная поддержка MPEG-4 ASP. Имейте в виду, что Xvid не нужен для декодирования Xvid-кодированного видео. libavcodec используется по-умолчанию, т.к. обеспечивает более высокую скорость.

#### Установка Xvid

Как и большинство ПО с открытым исходным кодом, он доступен как в виде официальных релизов, так и в виде CVS версии. Как правило, CVS версия достаточно стабильна для использования, т.к. в большинстве случаев ее особенностью является отсутствие ошибок, присутствующих в релизах. Далее описывается как заставить работать Xvid CVS с MEncoder:

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Вам может потребоваться добавить некоторые опции (посмотрите вывод `./configure --help`).

6.     make && make install

7. Перекомпилируйте MPlayer.

### x264

x264 is a library for creating H.264 video. MPlayer sources are updated whenever an x264 API change occurs, so it is always suggested to use MPlayer from Subversion.

If you have a GIT client installed, the latest x264 sources can be gotten with this command:

    git clone git://git.videolan.org/x264.git

Then build and install in the standard way:

    ./configure && make && make install

Now rerun `./configure` for MPlayer to pick up x264 support.

### AAC кодек

AAC (Advanced Audio Coding) - это кодек, иногда обнаруживаемый в MOV и MP4 файлах. Декодер с открытым исходным кодом, называемый FAAD, доступен с . MPlayer включает в себя CVS версию libfaad 2.1 beta, поэтому Вам ничего не нужно дополнительно скачивать.

Если Вы используете gcc 3.2, который не может скомпилировать встроенный FAAD, или просто хотите использовать внешнюю библиотеку, скачаете её с страницы загрузок и укажите `./configure` `--enable-faad-external`. Вам не нужен весь faad2, чтобы декодировать AAC файлы, достаточно libfaad. Вот как Вы можете её собрать:

    cd faad2/
    sh bootstrap
    ./configure
    cd libfaad
    make
    make install

Бинарники отсутствуют на audiocoding.com, но вы можете скачать (apt-get) Debian пакеты с домашней страницы Christian Marillat, Mandrake RPM'ники с P.L.F и RedHat RPM'ники с Livna.

### AMR кодеки

Речевой кодек Adaptive Multi-Rate используется в мобильных телефонах третьего поколения (3G).

Исходная реализация доступна с The 3rd Generation Partnership Project (бесплатна для личного использования). Чтобы включить поддержку, скачайте и установите библиотеки поддержки для AMR-NB и AMR-WB, следуя инструкциям на указанной странице.

## RTC

У MPlayer'а есть три метода синхронизации.

- Чтобы использовать старый метод синхронизации, Вам ничего не надо делать. Он использует usleep(), чтобы подстроить A/V синхронизацию, с точностью +/- 10ms. Однако, иногда требуется даже большая точность синхронизации.

- Новый таймер использует RTC (Real Time Clock[часы истинного времени]) для этой задачи потому, что это таймер точностью 1ms. Он включается опцией `-rtc`, но требует правильно настроенного ядра. Если Вы работаете с ядром 2.4.19pre8 или более поздним, Вы можете настроить максимальную частоту RTC для обычных пользователей через файловую систему /proc. Используйте одну из этих двух команд, чтобы сделать RTC доступным для обычных пользователей:

      echo 1024 > /proc/sys/dev/rtc/max-user-freq

      sysctl dev/rtc/max-user-freq=1024

  Можно сделать эти изменения постоянными, добавив последнюю в `/etc/sysctl.conf`.

  Вы увидите эффективность нового кода таймера по строке состояния. Функции управления потребляемой мощностью[power management] у некоторых ноутбуковских BIOS'ов со speedstep-CPU плохо взаимодействуют с RTC. Аудио и видео могут десинхронизироваться. Вероятно, если Вы вставите штекер внешнего питания до включения ноутбука, то это поможет. В некоторых аппаратных комбинациях (подтверждено при использовании не-DMA DVD драйва с материнской платой ALi1541) использование RTC таймера приводит к "прыгающему"[skippy] проигрыванию. В этом случае рекомендуется использовать третий метод.

- Третий код таймера включается опцией `-softsleep`. У него эффективность RTC, но он не использует RTC. С другой стороны, он сильнее использует CPU.