# Установка

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

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

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

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

- binutils - рекомендуемая версия - это 2.11.x . Эта программа ответственна за генерацию MMX/3DNow!/и т. п. инструкций, и поэтому очень важна.

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

- XFree86 - рекомендуемая версия - это всегда новейшая (4.3). Обычно, все этого хотят, поскольку начиная с 4.0.2, XFree86 содержат XVideo расширение (иногда упоминаемое, как Xv) которое требуется для включения аппаратной YUV акселерации (быстрый вывод изображений на видеокартах, которые это поддерживают.

  Будьте уверены, что пакет разработки также установлен, иначе это не будет работать.

  Для некоторых видео карт, вам не нужен XFree86. Их список см. ниже.

- make - рекомендуемая версия - это всегда новейшая (минимум 3.79.x). Обычно это не очень важно.

- FreeType - требуется версия 2.0.9 или новее, чтобы иметь шрифт для OSD и субтитров.

- SDL - это не обязательно, но может помочь в некоторых случаях (плохие аудио, видео карты, которые странно лагуют с xv драйвером). Всегда используйте новейшую версию (начиная с 1.2.x).

- libjpeg - необязательный декодер JPEG, используемый -mf и некоторыми QT MOV файлами. Полезен для MPlayer'а и MEncoder'а, если Вы планируете работать с jpeg файлами.

- libpng - рекомендуемый и используемый по умолчанию (M)PNG декодер. Необходим для GUI.Полезен как для MPlayer'а, так и для MEncoder'а.

- lame - рекомендуется, необходимо для кодирования MP3 аудио c MEncoder, рекомендуемая версия - это всегда новейшая (как минимум 3.90).

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

- libogg - необязательно, необходимо для проигрывания файлов формата OGG.

- libvorbis - необязательно, необходимо для проигрывания OGG Vorbis аудио.

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

- directfb - необязательно, на http://www.directfb.org. Требуется минимум 0.9.13.

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

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

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

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

- bio2jack - необязательно, для поддержки вывода звука через JACK, требуется только при компиляции. Вы можете получить это с http://bio2jack.sf.net. Поскольку там нет возможности установить библиотеку, Вы должны вручную скопировать файл `libbio2jack.a` куда-нибудь в Ваш библиотечный путь (e.g. `/usr/local/lib`) или используйте опцию `--with-bio2jack=DIR`, чтобы указать `./configure` где искать этот файл.

## Видео карты

В целом, существуют два типа видео карт. Первый тип (новейшие карты) поддерживают аппаратное масштабирование и YUV акселерацию, другие карты - нет.

### YUV карты

Они могут показывать и масштабировать изображение до любого размера, помещающегося в их память, с малой загрузкой CPU (даже при масштабировании), поэтому полноэкранный просмотр приятный и очень быстрый.

- Matrox G200/G400/G450/G550 карты: хотя Vidix драйвер и существует, вместо него рекомендуется использовать модуль ядра mga_vid, поскольку он лучше работает. Пожалуйста, прочтите секцию mga_vid о его установке и использовании. Важно проделать эти операции до компиляции MPlayer'а, иначе поддержка mga_vid не будет собрана. Также обратите внимание на секцию Matrox TV-вывод. Если Вы не используете Linux, Ваша единственная возможность - использовать VIDIX драйвер: см. секцию VIDIX.

- 3Dfx Voodoo3/Banshee карты: читайте секцию tdfxfb, чтобы получить значительное ускорение. Важно проделать эти операции до компиляции MPlayer'а, иначе поддержка mga_vid не будет собрана. Если Вы используете X, используйте минимум 4.2.0, поскольку 3dfx Xv драйвер был сломан в 4.1.0 и более ранних версиях.

- ATI карты: существует VIDIX драйвер для следующих карт: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98).Также см. секцию ATI карт в документации TV-вывода, чтобы узнать, поддерживается ли TV-out Вашей карты под Linux/MPlayer.

- S3 карты: у Savage и Virge/DX чипов есть аппаратная акселерация. Используйте наиболее свежую версию XFree86, старые драйвера содержат ошибки. У Savage чипов проблемы с выводом YV12, см. S3 Xv секцию для подробностей. У более старых Trio карт нет аппаратной поддержки, или она медленная.

- nVidia карты: может быть, а может и не быть хорошим выбором для просмотра фильмов. Если у Вас не GeForce2 (или более новая) карта, то маловероятно, что она будет работать без ошибок. Встроенные nVidia драйвера в XFree86 не поддерживают YUV акселерацию на всех nVidia картах. Вам необходимо скачать драйверы с закрытым исходным кодом с nVidia.com. См. секцию nVidia Xv драйвера для подробностей. Также посмотрите секцию nVidia TV-выход, если Вы хотите использовать TV.

- 3DLabs GLINT R3 и Permedia3: существует VIDIX драйвер (pm3_vid). Для подробностей, см. секцию VIDIX.

- Другие карты: Не упомянута выше?

  - Проверьте, поддерживает ли XFree86 драйвер (и Ваша карта) аппаратную акселерацию. Подробности см. в секции Xv.

  - Если нет, то возможности Вашей видеокарты не поддерживаются под Вашей операционной системой :( Если аппаратная акселерация работает под Windows, это не значит, что она будет работать под Linux или иной операционной системой: это зависит от драйвера. Большинство производителей не делают Linux'овых драйверов и не распространяют спецификации для их чипов, поэтому Вам не повезло, что Вы используете их карты. См. .

### Не-YUV карты

Полноэкранное воспроизведение может быть достигнуто либо включением программного масштабирования (используйте `-zoom` или `-vf scale` опции, но я предупреждаю Вас: это медленно), или переключением в видео режим с меньшим разрешением, например 352x288. Если у Вас нет аппаратной YUV акселерации, этот метод предпочтителен. Изменение видео режима может быть включено использованием опции `-vm` и работает со следующими драйверами:

- используя XFree86: подробности см. в секциях DGA драйвер и X11 драйвер. Рекомендуется DGA ! Также попробуйте использовать DGA через SDL, иногда это лучше.

- не используя XFree86: попробуйте драйвера в следующем порядке: vesa, fbdev, svgalib, aalib.

### Cirrus Logic карты

- GD 7548: установлено на материнской плате и тестировалась в ноутбуках серии Compaq Armada 41xx.

  - XFree86 3: работает в 8/16bpp режимах. Хотя, драйвер очень медленный и генерирует ошибки в режиме 800x600@16bpp. Рекомендуется: 640x480@16bpp

  - XFree86 4: Xserver замораживается вскоре после старта, если акселерация не отключена, но тогда все становится медленнее, чем под XFree86 3. Нет XVideo.

  - FBdev: фреймбуфер[framebuffer - кадровый буфер] может быть включён `clgenfb` драйвером в ядре, хотя для меня это работало только при 8bpp, и поэтому непригодно. В исходный код до компиляции должен быть добавлен 7584 ID

  - VESA: карта совместима только с VBE 1.2, поэтому VESA вывод не может использоваться. Не может быть обойдено с UniVBE.

  - SVGAlib: определяется как более старый Cirrus чип. Работает, но медленно с `-bpp 8`.

## Звуковые карты:

- Soundblaster Live!: с этой картой Вы можете использовать 4 или 6 (5.1) канальное AC3 декодирование, вместо 2. Читайте секцию Программное AC3 декодирование. Для аппаратного пропуска AC3[hardware AC3 passthrough] Вы должны использовать ALSA 0.9 с эмуляцией OSS!

- C-Media с S/PDIF выходом: аппаратная AC3 передача[passthrough] возможна с этими картами, см. секцию Аппаратное AC3 декодирование.

- Возможности других карт не поддерживаются MPlayer'ом. Очень рекомендуется прочитать секцию звуковые карты!

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

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

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

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

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

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

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

    ./configure
    make
    make install

В этот момент, MPlayer готов к использованию. Каталог `$PREFIX/share/mplayer` содержит файл `codecs.conf`, который используется, чтобы сообщить программе обо всех кодеки и их возможности. Этот файл требуется только в том случае, если Вы хотите поменять их настройки, поскольку основной запускаемый файл содержит внутреннюю копию этого файла. Проверьте, не содержится ли файл `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`.

В настоящий момент, Вы не можете использовать опцию `-gui` в командной строке, по техническим причинам.

Поскольку 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). Чтобы получить список шрифтов известных fontconfig'у, используйте `fc-list`. Пример:

    mplayer -font 'Bitstream Vera Sans'
      anime.mkv

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

Если по каким-то причинам вам необходимо использовать растровый шрифт, скачайте набор таковых с нашего сайта. Вы можете выбирать между различными 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. нажмите любую меню-кнопку, которую Вы определили

## 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.