ПортингLinux
Основная платформа разработки — это Linux на x86, хотя
MPlayer работает под многими другими портами Linux.
Бинарные пакеты MPlayer'а доступны из нескольких источников.
Тем не менее,
ни один из этих пакетов не поддерживается.
Сообщайте о проблемах их авторам, а не нам.
Debian пакеты
Чтобы создать Debian пакет, выполните следующие команды в каталоге с исходным
кодом MPlayer'а:
fakeroot debian/rules binary
Если вы хотите передать дополнительные опции configure, установите
соответствующее значение переменной окружения DEB_BUILD_OPTIONS.
В частности, если хотите поддержку GUI и OSD, укажите:
DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary
Вы также можете передать некоторые переменные в Makefile. Например, если
желаете компилировать gcc 3.4 даже если это не основной компилятор:
CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
Для очистки дерева исходных текстов воспользуйтесь командой:
fakeroot debian/rules clean
В качестве root'а Вы затем можете установить .deb
пакет:
dpkg -i ../mplayer_версия.deb
Какое-то время Christian Marillat собирал неофициальные Debian пакеты с
MPlayer, MEncoder
и бинарными кодеками, так что вы можете их скачать (выполнить apt-get)
с его сайта.
RPM пакеты
Dominik Mierzejewski поддерживает официальные Fedora Core RPM пакеты
MPlayer'а. Они доступны в
репозитории Livna.
Mandrake/Mandriva RPM пакеты доступны с P.L.F..
SuSE включала искалеченную версию MPlayer'а в дистрибутив.
Из последних релизов они убрали эти пакеты. Вы можете взять
работающие RPM с
links2linux.de.
ARMMPlayer работает на Linux PDA с ARM процессором,
например Sharp Zaurus, Compaq Ipaq. Простейший способ получить
MPlayer — это скачать его с
пакетных репозиториев
OpenZaurus. Если Вы хотите
скомпилировать его самостоятельно, обратите внимание на каталоги
mplayer
и
libavcodec
в корне сборки дистрибутива OpenZaurus. Там всегда найдутся
свежий Makefile и патчи, используемые для сборки SVN MPlayer'а вместе с
libavcodec.
Если Вам нужен GUI, используйте встроенный в xmms
*BSDMPlayer работает на всех известных семействах BSD.
Существуют портированные[ports]/пакеты сорцов[pkgsrcs]/fink/
и т.п. версии MPlayer, которые, наверное, проще использовать,
чем просто исходный код.
Чтобы собрать MPlayer, Вам понадобится GNU make (gmake —
родной BSD make не будет работать) и свежая версия binutils.
Если MPlayer ругается, что он не может найти
/dev/cdrom или
/dev/dvd, создайте соответствующую ссылку:
ln -s /dev/Ваше_cdrom_устройство /dev/cdrom
Чтобы использовать Win32 DLL'и с MPlayer'ом, Вам необходимо
перекомпилировать
ядро с "option USER_LDT" (если только у Вас не FreeBSD-CURRENT,
где это включено по умолчанию).
FreeBSD
Если Ваш CPU поддерживает SSE, перекомпилируйте ядро с
"options CPU_ENABLE_SSE" (необходимо FreeBSD-STABLE
или патчи к ядру).
OpenBSD
В связи с ограничениями в различных версиях gas (конфликт настройки адресов и MMX),
Вы должны будете компилировать в два шага: сначала убедитесь, что не родной as
— первый в Вашем $PATH и выполните gmake -k
, затем убедитесь, что будет использоваться родная версия и запустите
gmake.
Начиная с OpenBSD 3.4 подобный хак больше не нужен.
Darwin
См. секцию Mac OS.
Коммерческие UnixMPlayer был портирован на некоторые коммерческие варианты Unix.
Поскольку окружения разработки этих систем отличаются от свободных Unix'ов,
вам придется самостоятельно произвести некоторые действия, чтобы сборка заработала.
SolarisMPlayer должен работать под Solaris 2.6 и более
новыми версиями. Для звука используйте звуковой драйвер SUN с
опцией .
На UltraSPARC'ах, MPlayer
использует преимущество их расширения VIS
(эквивалент MMX), но (в настоящий момент) только в
libmpeg2,
libvo
and libavcodec, но не в
mp3lib. Вы сможете просматривать VOB'ы
на 400MHz CPU. Вам потребуется установленная
mLib.
Предостережение:mediaLib в данный
момент отключена по умолчанию в
MPlayer из-за поломанности.
Пользователи SPARC, компилировавшие MPlayer с mediaLib
сообщали об изобилии зелёного оттенка в видео, кодируемом и
декодируемом libavcodec.
Если хотите, можете включить ее:
$ ./configure --enable-mlib
Вы делаете это на свой страх и риск, пользователи x86 не жолжны
никогда использовать mediaLib, поскольку
это очень сильно скажется на производительности MPlayer.
Чтобы собрать программу, Вам потребуется GNU make
(gmake, /opt/sfw/gmake), родной
Solaris make не будет работать. Типичная ошибка которую Вы будете
получать при использовании Solaris make, вместо GNU make:
% /usr/ccs/bin/make
make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
На Solaris SPARC, Вам потребуется GNU C/C++ Compiler; при этом не имеет
значения, был ли GNU C/C++ компилятор сконфигурирован с или без GNU ассемблера.
На Solaris x86, Вам потребуются GNU ассемблер и GNU C/C++ компилятор,
сконфигурированный, чтобы использовать GNU ассемблер! На x86 платформах
код MPlayer'а использует много MMX, SSE и 3DNOW!
инструкций, которые Sun'овский ассемблер /usr/ccs/bin/as
не может скомпилировать.
Скрипт configure пытается обнаружить, какой ассемблер
используется Вашей командой "gcc" (в том случае, если автоопределение
не сработает, используйте опцию
,
чтобы сообщить скрипту configure, где можно обнаружить
GNU "as" на Вашей системе).
Решение общих проблем:
Сообщения об ошибках configure на Solaris x86 системах при
использовании GCC без GNU ассемблера:
% configure
...
Checking assembler (/usr/ccs/bin/as) ... , failed
Please upgrade(downgrade) binutils to 2.10.1...
(Решение: Установите и используйте gcc, сконфигурированный с
)
Типичная ошибка при сборке GNU C компилятором, который не использует GNU as:
% gmake
...
gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
-fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c
Assembler: mplayer.c
"(stdin)", line 3567 : Illegal mnemonic
"(stdin)", line 3567 : Syntax error
... more "Illegal mnemonic" and "Syntax error" errors ...
MPlayer может сообщить о нарушении сегментации при
кодировании и декодировании видео, использующего win32codecs:
...
Trying to force audio codec driver family acm...
Opening audio decoder: [acm] Win32/ACM decoders
sysi86(SI86DSCR): Invalid argument
Couldn't install fs segment, expect segfault
MPlayer interrupted by signal 11 in module: init_audio_codec
...
Это из-за изменений в sysi86() в Solaris 10 и пре-Solaris
Nevada b31 релизах. Исправлено в Solaris Nevada b32; тем не менее
Sun еще следует портировать исправление обратно на Solaris 10. Проект MPlayer
осведомил Sun об этой проблеме и патч в данный момент готовится для
Solaris 10. Больше информации об этой ошибке ищите
на:
.
В связи с ошибками в Solaris 8, Вы не сможете проигрывать DVD диски, размером
больше 4 Гб:
Под Solaris 8 x86 драйвер sd(7D) содержит ошибку, проявляющуюся при доступе
к дискам, размером > 4 Гб на устройствах с логическим размером блока !=
DEV_BSIZE (например CD-ROM и DVD диски).
Из-за целочисленного 32-х битного переполнения, происходит доступ к дисковому адресу
по модулю 4 Гб
().
Проблема отсутствует в SPARC версиях Solaris 8.
Похожая ошибка существует в коде файловой системы hsfs(7FS) (ISO9660),
hsfs может не поддерживать разделы/диски больше 4 Гб, доступ к данным
происходит по модулю 4 Гб
().
Проблемы с hsfs могут быть исправлены установкой патча 109764-04 (sparc) /
109765-04 (x86).
HP-UX
Joe Page на своей домашней странице держит подробное
HOWTO
по MPlayer на HP-UX, написанное Martin Gansser.
С этими инструкциями сборка должна работать "прямо из коробки".
Следующая информация взята оттуда.
Вам потребуется GCC 3.4.0 или полее поздней версии, GNU make версии 3.80
или новее и SDL 1.2.7 или более новый. HP cc не может создать работоспособную
программу, предыдущие версии GCC глючат. Для функционирования OpenGL
необходимо установить Mesa, после чего должны заработать драйвера вывода видео
gl и gl2, хотя, в зависимости от быстродействия CPU, скорость может быть ужасной.
GNU esound является хорошей заменой довольно бедной звуковой системе HP-UX.
Произведите сканирование шины SCSI
на предмет наличия DVD устройства:
# ioscan -fn
Class I H/W Path Driver S/W State H/W Type Description
...
ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI
target 3 8/16/5.2 tgt CLAIMED DEVICE
disk 4 8/16/5.2.0 sdisk CLAIMED DEVICE PIONEER DVD-ROM DVD-305
/dev/dsk/c1t2d0 /dev/rdsk/c1t2d0
target 4 8/16/5.7 tgt CLAIMED DEVICE
ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator
/dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
...
Вывод показывает, что по адресу 2 шины SCSI находится Pioneer DVD-ROM.
Экземпляр карты для аппаратного пути 8/16 равен 1.
Создайте ссылку от сырого устройства к DVD устройству.
ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device>
Пример:
ln -s /dev/rdsk/c1t2d0 /dev/dvd
Далее следуют решения некоторых общих проблем:
Крах при запуске с таким сообщением об ошибке:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
Это значит, что функция .finite(). недоступна в стандартной
математической библиотеке HP-UX.
Вместо этого используйте .isfinite()..
Решение: Используйте последнюю версию Mesa из репозитория.
Крах при воспроизведении со следующей ошибкой:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Решение: Используйте опцию extralibdir программы configure
MPlayer вылетает с нарушением сегментации и сообщением вроде этого:
Pid 10166 received a SIGSEGV for stack growth failure.
Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
Segmentation fault
Решение:
Ядро HP-UX по-умолчанию для каждого процесса имеет размер стека равный 8MB(?).
(11.0 и новые патчи для 10.20 позволяют вам увеличить maxssiz
вплоть до 350MB для 32-х битных программ). Вы должны расширить
maxssiz
и перекомпилировать ядро (и перезагрузиться). Чтобы сделать это, можно использовать SAM.
(Находясь в нем, проверьте параметр maxdsiz на предмет
максимального количества данных, которые могут использоваться программами.
64 Мб по умолчанию может хватить или не хватить в зависимости от Ваших приложений.)
AIXMPlayer успешно собирается на AIX 5.1,
5.2, и 5.3, используя GCC 3.3 или новее. Сборка
MPlayer не проверена на AIX 4.3.3 и более ранних.
Крайне рекомендуется собирать
MPlayer используя GCC 3.4 или старше, и, как минимум,
GCC 4.0, если собираете на POWER5.
Убедитесь, что используете GNU make
(/opt/freeware/bin/gmake) для сборки
MPlayer, поскольку столкнетесь с проблемами при
использовании /usr/ccs/bin/make.
По-прежнему ведется работа над кодом определения CPU.
Проверены следующие архитектуры:
604ePOWER3POWER4
На следующих архитектурах не проверялось, но должно работать:
POWERPOWER2POWER5
Вывод звука через Ultimedia Services не поддерживается, т.к.
Ultimedia была убрана из AIX 5.1; таким образом, остается единственный
вариант: использовать драйвер AIX Open Sound system (OSS) от
4Front Technologies с
http://www.opensound.com/aix.html.
Для некоммерческого использования 4Front Technologies
распространяет драйвер OSS под AIX 5.1 бесплатно; несмотря на это,
на текущий день нет драйверов вывода звука для AIX 5.2 или 5.3.
drivers for AIX 5.2 or 5.3. Это означает, что сейчас
AIX 5.2 и 5.3 несовместимы с выводом звука MPlayer.Решения для общих проблем:
Если вы столкнулись с такой ошибкой configure:
$ ./configure
...
Checking for iconv program ... no
No working iconv program found, use
--charset=US-ASCII to continue anyway.
Messages in the GTK-2 interface will be broken then.
Это из-за того, что AIX использует нестандартные имена кодировок;
поэтому перекодировка сообщений в данный момент не работает.
Решение - использовать:
$ ./configure --charset=noconvQNX
Вам нужно скачать и установить SDL для QNX. Затем запустите
MPlayer с опциями
и , и все будет работать быстро.
Вывод будет ещё медленнее, чем под Linux, поскольку под
QNX X'ы эмулируются, что ОЧЕНЬ медленно.
Windows
Да, MPlayer работает под Windows под
Cygwin и
MinGW.
Пока ещё нет официального GUI, но версия командной строки полностью функциональна.
Обратитесь к списку рассылки
MPlayer-cygwin
за помощью и дополнительной информацией.
Официальные бинарники под Windows могут быть найдены на
странице загрузки.
Пакеты установки и простые GUI фронтенды доступны из внешних
источников, мы собрали их в разделе Windows на
нашей
странице проектов.
При нежелании использовать командную строку поможет простой трюк:
поместите на рабочий стол ссылку, со следующим содержимым в секции execute:
c:\путь\к\mplayer.exe %1
Это позволит MPlayer воспроизводить любой фильм,
который вы перетащите на созданный ярлык. Добавьте
для полноэкранного режима.
Лучшие результаты получаются при использовании родного DirectX видео
вывода (). Альтернативой является использование OpenGL или
SDL, но производительность OpenGL сильно зависит от машины, а SDL на некоторых
системах искажает видео или вылетает.
Если изображение искажено, попробуйте отключить аппаратное ускорение, указав
. Скачайте
файлы заголовков
DirectX 7, чтобы скомпилировать видео драйвер DirectX. Кроме того,
вам потребуется установленный DirectX 7, чтобы работал DirectX видеодрайвер.
VIDIX теперь доступен и под Windows, как
, хотя это ещё экспериментально и требует небольшой
ручной установки. Скачайте
dhahelper.sys или
dhahelper.sys (с поддержкой MTRR)
и скопируйте его в каталог
vidix/dhahelperwin в Вашем дереве
исходного кода MPlayer'а.
Откройте консоль и перейдите в этот каталог. Теперь наберите
gcc -o dhasetup.exe dhasetup.c
и запустите
dhasetup.exe install
под Администратором. Теперь Вам нужно перезагрузить машину.
Для получения наилучших результатов, MPlayer
должен использовать пространство цветов, аппаратно поддерживаемое Вашей
видеокартой. К сожалению, многие графические драйверы под Windows ошибочно
сообщают, что некоторые пространства цветов поддерживаются аппаратно.
Чтобы найти какие именно, попробуйте
mplayer -benchmark -nosound -frames 100 -vf format=colorspacemovie,
где colorspace может быть любым пространством
цветов из вывода опции . Если Вы найдёте
пространство цветов, которое Ваша карта особенно плохо поддерживает,
опция
помешает его использованию. Добавьте это в ваш конфигурационный файл, чтобы
это пространство цветов больше никогда не использовалось.
Существуют специальные пакеты кодеков для Windows, доступные на нашей
странице загрузки,
позволяющие воспроизводить форматы, для которых пока нет родной поддержки.
Поместите их куда-нибудь в пути или укажите
configure опцию
(или , но
только под Cygwin).
У нас были сообщения о том,
что Real DLL должны быть доступны пользователю, запускающему
MPlayer, для записи, но только на
некоторых системах (NT4). Если у Вас проблемы с ними, попробуйте сделать их
доступными на запись.
Вы можете воспроизводить VCD, проигрывая .DAT
или .MPG файлы, которые Windows показывает на VCD.
Вот как это работает (указывайте букву диска Вашего CD-ROM):
mplayer d:/mpegav/avseq01.dat
В качестве альтернативы вы можете напрямую воспроизводить VCD дорожки, указав:
mplayer vcd://<дорожка> -cdrom-device d:
DVDs также работают, укажите с буквой Вашего DVD-ROM:
mplayer dvd://<title> -dvd-device d::
Консоль Cygwin/MinGW
весьма медленная. Перенаправление вывода или
использование опции улучшает производительность на
некоторых системах. Прямой рендеринг ()
также может помочь. Если воспроизведение
прерывисто, попробуйте . Если какие-то из этих
опций Вам помогут, стоит поместить их в конфигурационный файл.
Если у Вас Pentium 4 и Вы заметили крахи при использовании кодеков RealPlayer,
попробуйте отключить hyperthreading.
Cygwin
Для компиляции MPlayer требуется запустить
Cygwin версии 1.5.0 или старше.
Файлы заголовков DirectX надо распаковать в
/usr/include/ или
/usr/local/include/.
Вы можете найти инструкции и файлы для запуска SDL под
Cygwin на
сайте libsdl.
MinGW
Прежде, установка версии MinGW,
способной скомпилировать MPlayer, была
сложновата, но сейчас все работает с самого начала. Просто установите
MinGW 3.1.0 или более новый и MSYS 1.0.9 или старше и
укажите постустановщику MSYS, что MinGW
установлен.
Распакуйте файлы заголовков DirectX в
/mingw/include/.
Для поддержки сжатых заголовкоав MOV необходима
zlib, которую
MinGW по умолчанию не предоставляет.
Сконфигурируйте её, указав и установите
её до компиляции MPlayer'а.
Полные инструкции по сборке MPlayer и необходимых
библиотек могут быть найдены на странице
MPlayer MinGW HOWTO.
Mac OSMPlayer не работает на Mac OS версий меньше 10,
но компилируется "из коробки" на Mac OS X 10.2 и старше. Предпочитаемым компилятором
является версия Apple GCC 3.x или более позднего. Вы можете получить начальное окружение
для компиляции, установив Apple'овский
Xcode.
Если у вас Mac OS X 10.3.9 или выше и QuickTime 7, можете использовать
драйвер видео вывода .
К сожалению, основное окружение не позволяет получить преимущество от всех
приятных возможностей MPlayer. В частности,
чтобы иметь включенную поддержку OSD, потребуются установленные в системе
библиотеки fontconfig
и freetype.
В отличие от остальных Unix'ов, таких как Linux и клоны BSD, OS X
не имеет поставляющейся с ОС систему управления пакетами.
Есть как минимум два на выбор:
Fink и
MacPorts.
Они оба предоставляют одинаковый сервис (т.е. огромное количество пакетов
для установки, разрешение зависимостей, возможность простой
установки/обновления/удаления пакетов и т.д.).
Fink предлагает как предкомпилированные бинарные пакеты, так и сборку
всего из исходников, в то время как MacPorts предлагает только собирать из
исходных текстов.
Автор данного руководства выбрал MacPorts исходя из того простого соображения,
что его базовая установка легче.
Последующие примеры будут основаны на MacPorts.
В частности для компиляции MPlayer с поддержкой OSD:
sudo port install pkgconfig
Это установит pkg-config, который является системой
управления флагами компиляции/сборки библиотек.
Скрипт configure программы MPlayer
использует его для правильного обнаружения библиотек.
Тем же способом можно установить fontconfig:
sudo port install fontconfig
Затем можно продолжить, запустив MPlayer'овский
configure скрипт (задайте переменные окружения
PKG_CONFIG_PATH и PATH так,
чтобы configure мог найти библиотеки, установленные
при помощи MacPorts):
PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure
MPlayer OS X GUI
Вы можете получить родной GUI для MPlayer вместе с
предкомпилированными бинарниками MPlayer для Mac OS X
из проекта
MPlayerOSX, но предупреждаем:
этот проект давно не развивается.
К счастью, MPlayerOSX был подхвачен членом команды
MPlayer. Предварительные релизы доступны с нашей
страницы загрузки
и скоро ожидается официальный релиз.
Чтобы самостоятельно собрать MPlayerOSX из
исходный текстов, вам потребуется
mplayerosx,
main и копию
main SVN модуля, называющегося
main_noaltivec.
mplayerosx - это GUI frontend,
main - это MPlayer, а
main_noaltivec - это MPlayer собранный без поддержки AltiVec.
Для извлечения модулей из SVN:
svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main
Чтобы собрать MPlayerOSX потребуется настроить что-то вроде этого:
MPlayer_source_directory
|
|--->main (MPlayer Subversion исходники)
|
|--->main_noaltivec (MPlayer Subversion исходники, сконфигурированные с --disable-altivec)
|
\--->mplayerosx (MPlayer OS X Subversion исходники)
Сначала надо собрать main и main_noaltivec.
Для начала, чтобы добиться максимальной обратной совместимости, установите
переменную окружения:
export MACOSX_DEPLOYMENT_TARGET=10.3
Затем сконфигурируйте:
Если конфигурируете для G4 или более позднего CPU с поддержкой AltiVec,
делайте так:
./configure --disable-gl --disable-x11
Если конфигурируете для машины c G3 без AltiVec, используйте:
./configure --disable-gl --disable-x11 --disable-altivec
Вам может потребоваться отредактировать config.mak и изменить
-mcpu и -mtune
с 74XX на G3.
Продолжайте с
make
после чего идите в каталог mplayerosx и там наберите:
make dist
Это создаст сжатый архив .dmg с котовым к использованию
бинарником.
Также можно использовать проект Xcode 2.1;
более старый Xcode 1.x больше не работает.