Установка
В этой главе я постараюсь провести Вас через процесс компиляции и конфигурации
MPlayer'а. Это не просто, но это не обязательно будет сложно. Если Вы заметите
какие-то отклонения, от того, что я объясняю, пожалуйста, поищите в этой
документации и Вы найдёте ответ. Если Вы увидите ссылку, пожалуйста, проследуйте
по ней и внимательно прочитайте её содержимое. Это займёт некоторое время,
но это ДЕЙСТВИТЕЛЬНО того стоит
Вам нужна современная система. Под Linux'ом рекомендуются ядра 2.4.x.
Требуемые программы: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 и
.
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).
libogg - необязательно, необходимо для проигрывания OGG формата файлов.
libvorbis - необязательно, необходимо для проигрывания OGG Vorbis аудио.
LIVE.COM Streaming Media
- необязательно, необходимо для проигрывания RTSP/RTP потоков.
directfb - необязательно, из
http://www.directfb.orgcdparanoia - необязательно, для поддержки CDDA
libfreetype - необязательно, для поддержки TTF шрифтов.
Требуется минимум 2.0.9.
libxmms - необязательно, для поддержки входных плагинов XMMS.
Требуется минимум 1.2.7.
libsmb - необязательно, для поддержки Samba.
Кодеки:libavcodec: Этот пакет кодеков способен декодировать
H263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3-кодированные видео потоки и
WMA (Windows Media Audio) v1/v2 аудио потоки, на многих платформах.
Он также известен как быстрейший для этой задачи.
См. эту секцию для подробностей.
Особенности:
декодирование упомянутых выше видеокодеков на не-x86 платформах
кодирование большинством упомянутых кодеков
этот кодек - это быстрейший доступный кодек
для DivX/3/4/5 и прочих типов MPEG4. Рекомендуется!
Win32 кодеки: Если Вы планируете использовать MPlayer на x86 архитектуре,
они вам вероятно потребуются. Скачайте Win32 кодеки с нашей
страницы кодеков
и установите их в /usr/lib/win32ДО компиляции 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 2.0 - 4.0 видео, и Sipro/Cook аудио. См.
секцию RealMedia файлы для инструкций по установке
и дополнительной информации.
Видео карты
В целом, существуют два типа видео карт. Первый тип (новейшие карты) поддерживают
аппаратное масштабирование и 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 не будет собрана. Также см. секцию 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 карты'.
Не-YUV карты
Полноэкранное воспроизведение может быть достигнуто либо включением программного
масштабирования (используйте или
опции, но я предупреждаю Вас: это медленно), или переключением в видео режим
с меньшим разрешением, например 352x288. Если у Вас нет аппаратной YUV акселерации,
этот метод предпочтителен. Изменение видео режима может быть включено использованием
опции и работает со следующими драйверами:
используя 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 - кадровый буфер] может быть включён
драйвером в ядре, хотя для меня это работало только при 8bpp, и
поэтому, непригодно. Исходный код должен быть расширен 7584 ID
до компиляции.
VESA: карта совместима только с VBE 1.2, поэтому VESA вывод не может
использоваться. Не может быть обойдено с UniVBE.
SVGAlib: определяет более старый Cirrus чип. Работает, но медленно с
.
Звуковые карты:Soundblaster Live!: с этой картой Вы можете использовать 4 или 6 (5.1)
канальное AC3 декодирование, вместо 2. Читайте секцию
Программное AC3 декодирование.
For hardware AC3 passthrough you must use ALSA 0.9 with OSS emulation!
C-Media с SP/DIF выходом: аппаратная AC3 передача[passthrough] возможна
с этими картами, см. секцию Аппаратное AC3
декодирование.
Возможности других карт не поддерживаются MPlayer'ом.
Очень рекомендуется прочитать секцию звуковые карты
!
Возможности:
Решите, нужен ли Вам GUI. Если да, читайте секцию GUI
до компиляции.
Если Вы хотите установить MEncoder (наш великолепный многоцелевой кодировщик),
читайте секцию MEncoder.
Если у Вас V4L совместимый TV тюнер, и Вы хотите смотреть/захватывать
и кодировать MPlayer'ом фильмы, читайте секцию TV вход.
Существует изящное OSD Меню готовое для использования. Проверьте секцию
OSD Меню.
Теперь соберите MPlayer:
./configure
make
make install
В этот момент, MPlayer готов к использованию. Каталог
$PREFIX/etc/mplayer содержит файл codecs.conf,
который используется, чтобы сообщить программе обо всех кодеки и их возможности.
Этот файл требуется только в том случае, если Вы хотите поменять их настройки,
поскольку основной запускаемый файл содержит внутреннюю копию этого файла.
Проверьте, не содержится ли файл codecs.conf в Вашем домашнем каталоге
(~/.mplayer/codecs.conf) оставленный от предыдущих версий MPlayer'а,
и удалите его.
Пользователи 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'шное, но панельки - да). Шкуры хранятся
в PNG формате, поэтому GTK, libpng (и их части для разработчиков, обычно они
называются gtk-dev и libpng-dev) должны быть установлены.
Вы можете собрать GUI, указав в .
Затем, чтобы использовать GUI, Вы должны запускать gmplayer.
В настоящий момент, Вы не можете использовать опцию в командной
строке, по техническим причинам.
Поскольку MPlayer не содержит ни одной шкуры, Вы должны скачать их, если Вы
хотите использовать GUI. См.
download page[страницу
закачек]. Они должны быть извлечены в системный каталог
($PREFIX/share/mplayer/Skin), или в
$HOME/.mplayer/Skin. По умолчанию, MPlayer ищет каталог default
в этих каталогах, но вы можете использовать опцию ,
или директиву конфигурационного файла , чтобы использовать
шкуру из каталога */Skin/newskin.
Субтитры и OSD
Вместе с фильмом MPlayer может показывать и субтитры. В настоящий момент
поддерживаются следующие форматы:
VobSubOGMCC (closed caption)MicrodvdSubRipSubViewerSamiVPlayerRTSSAMPsubAQTitleJACOsub
MPlayer может конвертировать вышеперечисленные форматы субтитров (кроме первых
трёх) в следующие форматы с помощью соответствующих опций:
MPsub: SubRip: Microdvd: JACOsub: Sami:
MEncoder может выдавать DVD субтитры в VobSub формате.
Опции значительно различаются для различных форматов:
VobSub субтитры
VobSub субтитры состоят из большого (несколько мегабайт) .SUB файла, и необязательных
.IDX и/или .IFO файлов.
Использование: если у Вас, например, есть файлы sample.sub,
sample.ifo (необязательно), sample.idx - Вы должны указать
MPlayer'у опции (полный путь
указывать не обязательно). Опция похожа на
для DVD, с её помощью, Вы можете выбирать между дорожками субтитров (языками).
В случае, если пропущена, MPlayer попытается использовать
языки, полученные через опцию и перейти к пункту
langidx в .IDX файле, чтобы выбрать язык субтитров. Если и это
не удаётся, то субтитров не будет.
Другие субтитры
Прочие форматы субтитров состоят из единого текстового файла, содержащего информацию
о синхронизации, местоположении и тексте субтитра.
Использование: Если у Вас есть, например, файл sample.txt,
Вы должны указать опцию (полный путь указывать
не обязательно).
Регулировка синхронизации и местоположения субтитров:
Задерживает субтитры на
секунд. Может быть отрицательным.
Указывает количество кадров/сек для файла субтитров (вещественное число)
Указывает позицию субтитров.
Если Вы наблюдаете увеличивающуюся задержку между фильмом и субтитрами, используя
файл MicroDVD субтитров, наиболее вероятно, что частота кадров у фильма и файла
субтитров не совпадают. Пожалуйста, обратите внимание, что формат MicroDVD
использует абсолютные номера кадров для синхронизации, и поэтому опция
не может использоваться с этим форматом. Поскольку
MPlayer
не может угадать частоту кадров для субтитров, Вы должны вручную конвертировать
частоту кадров. В каталоге contrib MPlayer'овского FTP сайта есть
специальный Perl'овый скрипт для такой конверсии.
О DVD субтитрах, читайте секцию DVD.
MPlayer's own subtitle formatMPlayer ввёл в употребление новый формат субтитров,
называемый 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 используется для вывода текущего времени, полос громкости и
перемещения, и т. п.
Установка OSD и субтитров
Вам нужен пакет шрифтов MPlayer'а, чтобы использовать возможности OSD/SUB.
Есть много способов их получить:
используйте TrueType (TTF) шрифт, через библиотеку freetype.
Обязательна версия 2.0.9 или выше! Тогда у Вас есть два метода:
используйте опцию , чтобы
указывать каждый раз путь к TrueType шрифту
создайте ссылку: ln -s /path/to/arial.ttf ~/.mplayer/subfont.ttf
Скачать готовый к употреблению пакет шрифтов с сайта MPlayer'а.
Замечание: Доступные в настоящий момент шрифты ограничены до поддержки
ISO 8859-1/2, но существуют другие (включая корейские, русские, ISO 8859-8
и др.) сделанные пользователями шрифты в contrib/font секции FTP.
Шрифт должен содержать соответствующий font.desc файл,
который создаёт соответствия между Unicode позицией в шрифте и кодовой
страницей субтитра. Другим решением является наличие субтитра в utf8 кодировке
и использование опции , или просто обозвать файл
субтитра <video_name>.utf и разместить его
в каталоге с фильмом. Перекодировка из различных кодировок в utf8 может быть
осуществлена с помощью программ konwert (Debian) или iconv (Red Hat).
Некоторые URL'ыURLComment
ISO шрифты
разные шрифты от пользователей
корейские шрифты и RAW плагин
Использовать средство генерации шрифтов в
TOOLS/subfont-c. Это законченное средство для преобразования
из TTF/Type1/и т. п. шрифтов в mplayer'овские шрифтовые пакеты.
(читайте TOOLS/subfont-c/README для подробностей)
используйте GIMP'овый плагин генерации шрифтов из TOOLS/subfont-GIMP (замечание: также, у Вас
должен быть установлен HSI RAW плагин, см. URL выше)
Если Вы решите использовать не-TTF шрифты, UNZIP'ните скаченный файл в
~/.mplayer или $PREFIX/share/mplayer. Затем переименуйте,
или слинкуйте (создайте ссылку) один из каталогов в font
(напр.:
ln -s ~/.mplayer/arial-24 ~/.mplayer/font).
Теперь Вы должны увидеть таймер в левом верхнем углу фильма (выключите его кнопкой o).
(субтитры всегда включены, чтобы узнать, как их отключить,
читайте страницу man)
У OSD 4 состояния: (переключаются кнопкой o):
полосы громкости + перемещения (по умолчанию)
полосы громкости + перемещения + таймер + позиция в файле в процентах при перемещении
полосы громкости + перемещения + таймер + длина всего фильма
только субтитры
Вы можете изменить действия по умолчанию, установив в нужное значение переменную
в конфигурационном файле, или используя опцию
командной строки.
OSD меню
У MPlayer'а существует целиком определяемый пользователем интерфейс OSD меню.
меню Preferences[Настройки] в настоящий момент НЕ НАПИСАНО!
Установка
скомпилируйте MPlayer, указав
./configure параметр
убедитесь, что у Вас установлен OSD шрифт
скопируйте etc/menu.conf в Ваш каталог .mplayer
скопируйте etc/input.conf в Ваш каталог .mplayer, или в системный конфигурационный
каталог MPlayer'а (по умолчанию:
/usr/local/etc/mplayer)
проверьте и отредактируйте input.conf, чтобы включить
кнопки перемещения по меню (это здесь описано).
запустите MPlayer как в следующем примере:
$ mplayer -menu file.avi
нажмите любую меню-кнопку, которую Вы определили
RTC
У MPlayer'а есть три метода синхронизации.
Чтобы использовать старый метод синхронизации
, Вам ничего не надо делать. Он использует usleep(),
чтобы подстроить A/V синхронизацию, с точностью +/- 10ms. Однако, иногда
требуется даже большая точность синхронизации.
Новый таймер использует PC'шные RTC (Real Time
Clock[часы истинного времени]) для этой задачи потому, что это таймер
точностью 1ms. Это автоматически включается, когда доступно, но требует
привилегий root'а, съюднутого по root'у исполняемого
файла MPlayer'а, или правильно настроенного ядро.
Если Вы работаете с ядром 2.4.19pre8 или более поздним, Вы можете настроить
максимальную частоту RTC для обычных пользователей через файловую систему
/proc. Используйте эту команду, чтобы сделать RTC доступным для обычных
пользователей:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Если у Вас не такое свежее ядро, Вы также можете поменять одну строчку в
drivers/char/rtc.c и перекомпилировать ядро.
Найдите место, которое выглядит как
* We don't really want Joe User enabling more
* than 64Hz of interrupts on a multi-user machine.
*/
if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
и замените 64 на 1024. Хотя Вы должны знать, что Вы делаете.
Вы увидите эффективность нового кода таймера по строке состояния.
Функции управления потребляемой мощностью[power management] у некоторых
ноутбуковских BIOS'ов с speedstep-CPU плохо взаимодействуют с RTC. Аудио и
видео могут десинхронизироваться. Вероятно, если Вы вставите штекер внешнего
питания до включения ноутбука, то это поможет. Вы всегда можете отключить
поддержку RTC, указав опцию . В некоторых аппаратных
комбинациях (подтверждено при использовании не-DMA DVD драйва с материнской
платой ALi1541) использование RTC таймера приводит к "прыгающему"[skippy]
проигрыванию. В этом случае рекомендуется использовать третий метод.
Третий код таймера включается опцией
. У него эффективность RTC, но он не использует
RTC. С другой стороны, он сильнее использует CPU.
НИКОГДА не устанавливайте съюднутый
по root'у исполняемый файл MPlayer'а на
многопользовательской системе!
Это прямой путь к тому, что каждый будет root'ом.