1.2. Установка

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

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

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

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

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

  • gcc - рекомендуемые версии: 2.95.3 (может быть 2.95.4) и 3.2+. НИКОГДА не используйте 2.96 или 3.0.x! Они генерируют ошибочный код для MPlayer'а. Если Вы решите изменить gcc с версии 2.96, то не принимайте решение в направлении 3.x только поскольку он новее. Ранние релизы 3.x содержали ещё больше ошибок, чем 2.96. Так что ставьте 2.95.x (поставьте также более старую libstdc++, это может потребоваться для других программ) или вообще ничего не меняйте (но в этом случае приготовьтесь к проблемам во время работы). Если Вы решите использовать 3.x, попробуйте использовать последнюю версию, в ранних релизах были различные ошибки/проблемы, так что используйте минимум 3.1, это протестированно и работает. Для детальной информации о багах в gcc 2.96 (которые все ещё НЕ исправлены, а "ОБОЙДЕНЫ"[WORKED AROUND] в MPlayer'е!), см. gcc 2.96 и FAQ.

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

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

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

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

  • 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 аудио.

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

  • directfb - необязательно, на http://www.directfb.org

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

  • libfreetype - необязательно, для поддержки TTF шрифтов. Требуется минимум 2.0.9.

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

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

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

1.2.2. Кодеки:

  • libavcodec: Этот пакет кодеков способен декодировать H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3-кодированные видео потоки и WMA (Windows Media Audio) v1/v2 аудио потоки, на многих платформах. Он также известен как быстрейший кодек для этих задач. Подробности см. в разделе FFmpeg. Особенности:

    • декодирование упомянутых выше видеокодеков на не-x86 платформах
    • кодирование большинством упомянутых кодеков
    • этот кодек - это быстрейший доступный кодек для DivX/3/4/5 и прочих типов MPEG4. Рекомендуется!

  • Win32 кодеки: Если Вы планируете использовать MPlayer на x86 архитектуре, они вам вероятно потребуются. Скачайте Win32 кодеки с нашей страницы кодеков и установите их в /usr/local/lib/codecs ДО компиляции MPlayer'а, иначе поддержка Win32 будет отключена!

    Замечание

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

    Особенности:

    • Вам это понадобится, если Вы хотите проигрывать, например, фильмы, записанные с различных аппаратных компрессоров, таких, как тюнеры, цифровые камеры (например: DV, ATI VCR, MJPEG)
    • необходимо, если Вы хотите проигрывать WMV9/WMA9 фильмы.
    • Не нужно для старых ASF'ок с MP41 или MP42 видео (хотя в этих файлах часто встречается VoxWare аудио - декодируется Win32 кодеками), или WMV7. Также не нужно для WMA (Windows Media Audio), в libavcodec для этого есть декодер с открытыми исходниками.

  • QuickTime кодеки: на x86 платформах эти кодеки могут использоваться для декодирования RPZA, и прочих QuickTime'овских видео, и QDesign аудио потоков. Инструкции по установке могут быть найдены в секции Sorenson видео кодек.

  • DivX4/DivX5: информация об этом кодеке расположена в секции DivX4/DivX5. Вам, вероятно, не потребуется этот кодек, поскольку libavcodec (см. выше) гораздо быстрее и выше качеством, чем этот кодек, как для кодирования, так и для декодирования. Особенности:

    • кодирование в 1 или 2 прохода MEncoder'ом
    • может проигрывать старые DivX3 фильмы гораздо быстрее, чем Win32 DLL, но медленнее, чем libavcodec!
    • у него закрытые исходники, и доступна только x86 версия.

  • XviD: кодирующая альтернатива для DivX4Linux с открытым исходным кодом. Особенности:

    • кодирование в 1 или 2 прохода MEncoder'ом
    • его исходный код открыт, поэтому он многоплатформенен.
    • он где-то раза в 2 быстрее, чем DivX4 при кодировании, при примерно таком же качестве

  • XAnim'овские кодеки - лучшие (полный экран, аппаратное YUV масштабирование) для декодирования 3ivx, Indeo 3/4/5 фильмов, и некоторых старых форматов. И они многоплатформенные, поэтому это единственный способ проигрывать Indeo на не-x86 платформах (ну, кроме как использовать Xanim:). Но, к примеру, Cinepak фильмы лучше проигрываются с оригинальным MPlayer'овским декодером!

  • Для декодирования Ogg Vorbis аудио, Вам нужно правильно установить libvorbis. Используйте по возможности deb/rpm пакеты, или скомпилируйте из исходников (это еженощно обновляемый архив с Vorbis CVS).

  • MPlayer может использовать библиотеки из RealPlayer 8 или RealONE, чтобы проигрывать файлы с RealVideo 3.0 и 4.0 видео, и Sipro/Cook аудио. См. секцию RealMedia файлы для инструкций по установке и дополнительной информации.

1.2.3. Видео карты

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

1.2.3.1. 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 не будет собрана. Также см. секцию 3dfx TV-вывод. Если Вы используете 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 карты.

1.2.3.2. Не-YUV карты

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

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

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

1.2.4. Звуковые карты:

  • 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'ом. Очень рекомендуется прочитать секцию звуковые карты!

1.2.5. Возможности:

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

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

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

  • Существует изящное 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.