Четверг, 02.05.2024, 09:57
Приветствую Вас Гость | RSS

Сайт AD Team

Каталог статей

Главная » Статьи » Статьи по Mac OS

Собираем MPlayer
1. Установка MacPorts.

Для установки MacPorts нам потребуется X11(в народе "иксы") и Xcode версии 3.0. X11 необходима не столько для MPlayer, сколько для нормальной работы MacPorts (X Window System является обязательным условием для программ использующих графический интерфейс в POSIX-совместимых ОС, а Mac OS, как мы знаем, к ним относится даже несмотря на то, что в повседневной работе использует свою собственную графическую подсистему). Xcode же, предоставит нам нужные средства разработки: компилятор C/С++ и множество используемых для сборки утилит.
Xсode 3.0 можно взять либо на сайте Apple, либо на установочном диске Leopard. Размер инсталяционного пакета Xcod'a 1,1 ГБ, а распаковывается он во все 2,5 - учтите это, товарищи!
X11, насколько я знаю, можно поставить только с установочного диска Mac OS, дистрибутива иксов на сайте Apple я не нашел, есть только update (если знающие люди меня поправят - буду рад).
Ну что ж, приступим к инсталяции. Для удобства будем ставить все с установочного диска. В его корне есть, незаслуженно забытый многими, каталог "Optional Installs". Там есть все что нам понадобится.
X11 ставится из пакета под названием "Optional Installs.mpkg". Просто отмечаем галочкой пункт X11 в разделе Программы и щелкаем далее.
Дистрибутив Xcode находится тут же, в папке "Xcode Tools". Запускаем "XcodeTools.mpkg". Установка абсолютно ничем не выделяется, поэтому описывать ее я не буду. При выборе компонентов лучше оставить все по-умолчанию.
Теперь качаем инсталятор MacPorts последней версии (1.6.0) c официального сайта. Выбираем версию под Leopard в .dmg формате (416КБ).
Монтируем скачанный образ и запускаем установку ("MacPorts-1.6.0.pkg"). Установщику потребуется доступ в интернет для синхронизации с деревом портов, наша задача это обеспечить:

После установки в корневом каталоге системного раздела появляется каталог "/opt" в котором и будут жить наши порты.
Теперь нам нужно отредактировать пользовательскую переменную $PATH, чтобы команды MacPorts были доступны из терминала. Для этого открываем Терминал.app и редактируем файл "~/.profile" в редакторе nano:

KNIGHT2000:~ avallac_h$ nano ~/.profile
GNU nano 2.0.1 File: /Users/avallac_h/.profile

##
# DELUXE-USR-LOCAL-BIN-INSERT
# (do not remove this comment)
##
echo $PATH | grep -q -s "/usr/local/bin"
if [ $? -eq 1 ] ; then
PATH=$PATH:/usr/local/bin
export PATH
fi

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH

[ Read 13 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text^T To Spel

Дописываем в файл строки выделенные красным. Теперь нужно нажать Ctrl+X для выхода и на запрос о сохранении файла ответить Y.
Еще одним правильным действием будет указать русскую locale в качестве основной для нашего пользователя. Для этого нужно выполнить в терминале команды:

KNIGHT2000:~ avallac_h$ defaults write ~/.MacOSX/environment LC_ALL ru_RU.UTF-8
KNIGHT2000:~ avallac_h$ defaults write ~/.MacOSX/environment LANG ru_RU.UTF-8

Теперь, сразу после захода пользователя в систему, те консольные программы которые могут выводить сообщения на русском языке и использовать русские стандарты будут это делать.
Закрываем Терминал.app и открываем его снова для того чтобы bash перечитал переменные.
Проверяем работоспособность системы выполнив в терминале команду команд - port. Если все работает, мы должны ввалится в интерактивный режим управления портами. Набираем quit для выхода из него:

KNIGHT2000:~ avallac_h$ port
MacPorts 1.600
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/avallac_h] > quit
Goodbye
KNIGHT2000:~ avallac_h$

Теперь займемся обновлением портов. Эта команда, как и многие последующие, требует для своего исполнения привилегии суперпользователя. Самый лучший способ это пользоватся командой sudo. Делаем следующее: sudo port -v selfupdate. У нас спрашивают пароль суперпользователя и запускается обновление дерева портов.

KNIGHT2000:~ avallac_h$ sudo port -v selfupdate
Password:
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
receiving file list ... done

<вывод опущен>

MacPorts base version 1.600 installed
Downloaded MacPorts base version 1.600
The MacPorts installation is not outdated and so was not updated
selfupdate done!

Вот и закончена первая фаза операции MPlayer, а мы имеем свежие и работоспособные мак-порты.

2. Компиляция MPlayer.

На данном этапе, главное определится с тем какой MPlayer/MEncoder нам нужен. Я буду описывать тот вариант конфигурации, который использую, но что могу - объясню. Для начала узнаем в каких вариантах можно собрать порт MPlayer, для этого выполняем в терминале команду "port variants mplayer". 


KNIGHT2000:~ avallac_h$ port variants mplayer
mplayer has the variants:
universal
man_all_lang: Install all possible languages for man pages
osd: Enable onscreen display and TrueType font support
fribidi: Enable FriBidi Unicode support
noappleremote: Disable Apple Infrared Remote support
lirc: Enable Linux Infrared Remote Daemon support
nodvd: Disable DVD and DeCSS support
smb: Enable smb:// network support
theora: Enable OggTheora support
xvid: Enable XviD encoding
x264: Enable H.264 encoding
binary_codecs: Enable platform-specific binary codecs
speex: Enable Speex playback
faac: Enable AAC encoding
dv: Enable DV encoding
twolame: Enable MPEG Audio Layer 2 encoding
dts: Enable non-passthrough DTS playback
sdl: Enable SDL video output
aa: Enable animated ASCII art video output
caca: Enable animated ASCII art video output
x11
arts: Enable aRts audio output
esd: Enable EsounD audio output
macosx
darwin
darwin_8

Поехали разбираться:
universal - некая абстрактная сборка, якобы работающая на любых системах. Нам не подойдет - мы хотим custom.
man_all_lang - установить документацию на всех языках. Тоже проку чуть - при макосевском сквозном UTF-8, страницу документации в кодировке koi8-r мы вряд ли прочтем.
osd - поддержка отображения субтитров и показа информации (различных индикаторов - громкости, времени проигрывания и т.п.) поверх видео. Обязательный пункт.
fribidi - поддержка субтитров на арабском и иврите.
noappleremote - запрет использования ябловского пультика дистанционного управления.
lirc - поддержка линукс-интерфеса для инфракрасных пультов дистанционного управления. Не ставим, ибо инфракрасного приемника у нас нет.
nodvd - запрет компиляции модулей отвечающих за проигрывание DVD. Естественно, мы хотим смотреть DVD, по-этому этот пункт опускаем.
smb - поддержка проигрывания файлов с сетевых ресурсов windows. Работает сама по себе, т.е. без монтирования ресурса макосью.
theora - поддержка того самого opensource видео-кодека (OggTheora). Более миф чем реальность, но может и пригодиться.
xvid - поддержка кодирования видео с помощью XViD (для MEncoder). Нужна.
x264 - поддержка кодирования видео с помощью x264 (для MEncoder). Нужна.
binary_codecs - поддержка windows-кодеков. Только для Intel-платформы - включает возможность использования windows библиотек для кодирования/декодирования. Сам пакет кодеков берется с официального сайта MPlayer'а. Эту опцию лучше включить.
speex - поддержка бесплатного VoIP кодека на основе Ogg.
faac - поддержка кодирования аудио с помощью FAAC (для MEncoder). Нужна.
dv - поддержка кодирования в формат DV (для MEncoder). Нужна.
twolame - поддержка кодирования аудио в MPEG Layer 2 на основе модернизированного движка lame (для MEncoder). Нужна.
dts - поддержка декодирования DTS-аудиоканала в DVD. Нужна.
sdl - поддержка SDL - кросс-платформенной библиотеки мультимедиа вызовов. Нужна, хотя именно этот модуль не давал собрать MPlayer в Tiger. Желающие могут по-экспериментировать.
aa - поддержка проигрывания видео на текстовый терминал. В макоси почти бесполезна, т.к. работает только в чистом XTerm.
caca - тоже что и aa, но в цвете.
x11 - пока не могу описать что это, должно добавлять поддержку вывода видео с помощью X11.
arts - поддержка вывода аудио через KDE'шный аудио-движок (aRts). Не нужна, в виду отсутствия KDE.
esd - поддержка вывода аудио через аудио-движок менеджера окон Enlightment. Не нужна, в виду отсутствия такового.
macosx - вариант сборки для Mac OS X по-умолчанию. Именно его мы и будем использовать.
darwin - ?
darwin_8 -?

Определились с опциями для сборки? Я да. Теперь запишем все нужные опции через пробел и с плюсиками перед ними. У меня получилось:

+osd +smb +theora +xvid +x264 +binary_codecs +faac +dv +twolame +dts +sdl +aa +caca

Почему опущен параметр "macosx"? Так ведь он и так собирается по-умолчанию.

Теперь мы готовы к сборке. Это процесс долгий, но полезный. Вам придется потратить где-то два часа только на сборку (это не считая того, чтобы выкачать мегабайт 70 исходников).

Процесс сборки выглядит следующим образом: сначала определяются все зависимости того порта, который вы хотите установить (т.е. формируется список портов без которых не будет работать ваш), затем эти зависимости устанавливаются, и уже на самой финальной стадии собирается ваш порт. Не следует забывать, что у портов от которых зависит ваш порт, могут быть свои зависимости... Впрочем, не будем лезть в дебри.
Порядок сборки каждого отдельного порта выглядит так:
скачиваются исходные тексты и необходимые патчи к ним
происходит конфигурация порта, т.е. система сканируется на предмет нужных модулей и применяются параметры сборки
происходит компиляция порта, исходники преобразуются в исполняемый код
собственно, установка порта.
Эти операции надо произвести сначала над всеми зависимостями, а потом над самим MPlayer'ом. Процесс автоматизирован и все это делается одной командой, но хоть чуть-чуть понимать суть вы должны. Готовы?

Пишем в терминале: "sudo port -v install mplayer", а далее копируем строку с плюсиками.

KNIGHT2000:~ avallac_h$ sudo port -v install mplayer +osd +smb +theora +xvid +x264 +binary_codecs +faac +dv +twolame +dts +sdl +aa +caca
Password:
---> Fetching
---> Verifying checksum(s)
---> Checksumming
---> Extracting
---> Extracting
---> Configuring
---> Building with target macosx

<вывод опущен, так как здесь будет очень много всего>

---> Installing MPlayer 1.0rc2_2+aa+binary_codecs+caca+dts+dv+faac+macosx+osd+sdl+smb+theora+twolame+x264+xvid
---> Activating MPlayer 1.0rc2_2+aa+binary_codecs+caca+dts+dv+faac+macosx+osd+sdl+smb+theora+twolame+x264+xvid
---> Cleaning MPlayer
---> Removing build directory for MPlayer
KNIGHT2000:~ avallac_h$

Если не будет ошибок, вы увидите что-то похожее на последние 5 строк.
Не переживайте, если процесс прервется ошибкой, постарайтесь по последним строчкам понять из-за чего она возникла. Если при сборке какой-то зависимости, то можно попробовать отказаться от использования этого модуля в MPlayer. Если долго не качается какой-то файл, то вы можете прервать процесс сборки нажав Ctrl+C, потом вручную скачать этот файл с другого зеркала и положить в нужный каталог внутри distfiles (это в "/opt/local/var/macports/distfiles/"). Можете также спросить об этом здесь, на форуме, но лучше если вопрос будет осмысленным.
Далее, перезапуск команды приводит к продолжению процесса сборки с того места где мы споткнулись.
К своему удивлению, могу сказать, что с текущими MacPorts под Leopard, все собирается без проблем. Ну что? Получилось?

Проверяем работоспособность MPlayer'а: запустив его в терминале и указав в качестве параметра имя и путь к какому-нибудь видеофайлу.

KNIGHT2000:~ avallac_h$ mplayer ~/Desktop/Encoded/episode01.avi
MPlayer 1.0rc2-4.0.1 © 2000-2007 MPlayer Team
CPU: Intel® Core™2 Duo CPU T7700 @ 2.40GHz (Family: 6, Model: 15, Stepping: 10)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
Creating config file: /Users/avallac_h/.mplayer/config
115 audio & 237 video codecs

Playing /Users/avallac_h/Desktop/Encoded/episode01.avi.
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
VIDEO: [xvid] 640x360 24bpp 23.976 fps 1123.5 kbps (137.1 kbyte/s)
SUB: Detected subtitle file format: ssa
SUB: Read 559 subtitles.
SUB: Added subtitle file (1): /Users/avallac_h/Desktop/Encoded/episode01.ass
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [macosx] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 640 x 360 (preferred colorspace: Planar YV12)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
SwScaler: reducing / aligning filtersize 1 -> 4
SwScaler: reducing / aligning filtersize 1 -> 4
SwScaler: reducing / aligning filtersize 1 -> 1
SwScaler: reducing / aligning filtersize 5 -> 4
[swscaler @ 0x79a670]SwScaler: BICUBIC scaler, from yuv420p to yuyv422 using MMX2
[swscaler @ 0x79a670]SwScaler: using 4-tap MMX scaler for horizontal luminance scaling
[swscaler @ 0x79a670]SwScaler: using 4-tap MMX scaler for horizontal chrominance scaling
[swscaler @ 0x79a670]SwScaler: using n-tap MMX scaler for vertical scaling (BGR)
[swscaler @ 0x79a670]SwScaler: 640x360 -> 640x360
VO: [macosx] 640x360 => 640x360 Packed YUY2
New_Face failed. Maybe the font path is wrong.
Please supply the text font file (~/.mplayer/subfont.ttf).
subtitle font: load_sub_face failed.
A: 88.3 V: 88.3 A-V: 0.047 ct: 0.061 2118/2118 6% 1% 1.5% 0 0
Exiting... (Quit)

Работает :).

3. Настройка MPlayer.

Файл конфигурации должен находится в домашнем каталоге в папке "~/.mplayer".
- переходим в домашний каталог если мы еще не в нем

KNIGHT2000:~ avallac_h$ cd ~

- создаем папку ".mplayer" (в дальнейшем в созданный нами каталог можно попасть выбрав в меню Finder "Переход -> Переход к папке" и введя в строке "~/.mplayer")

KNIGHT2000:~ avallac_h$ mkdir .mplayer

- заходим в нее

KNIGHT2000:~ avallac_h$ cd .mplayer

- создаем пустой файл конфига

KNIGHT2000:.mplayer avallac_h$ touch config

- открываем созданный файл в TextEdit

KNIGHT2000:.mplayer avallac_h$/Applications/TextEdit.app/Contents/MacOS/TextEdit config

Теперь приведу пример файла конфигурации:

# GENERAL OPTIONS
#stop-xscreensaver=1 # bool.

# PLAYER OPTIONS
framedrop=1 # bool.
hardframedrop=0 # bool.
mouse-movements=1 # bool.

# DEMUXER/STREAM OPTIONS
a52drc=1.0 # float
audiofile-cache=2048 # kbytes
cache=8192 # kbytes
cache-min=25 # percents
cache-seek-min=50 # percents
cdda=speed=4:paranoia=2
#cdrom-device=g:
channels=2 # 2,4,6
#dvd-device=h:
forceidx=0 # bool.
hr-mp3-seek=1 # bool.
idx=1 # bool.
ni=1 # bool.
nobps=1 # bool.
noextbased=1 # bool.
#srate=48000 # hz

# OSD/SUBTITLE OPTIONS
ass=0 # bool.
ffactor=1 # 0, 0.75, 1, 10
osdlevel=1 # 0->3
overlapsub=1 # bool.
spuaa=4 # 0->4
spualign=0 # -1->2
spugauss=1.0 # 0.0->3.0
sub-bg-alpha=32 # 0->255
sub-bg-color=0 # 0->255
sub-fuzziness=1 # 0->2
subalign=1 # 0->2
subcp=cp1251 # iconv
#subcp=utf-8 # iconv
subfont-autoscale=1 # 0->3
subfont-blur=2 # 0->8
subfont-osd-scale=4 # 0->100
subfont-outline=2 # 0->8
subfont-text-scale=5 # percents
subpos=90

af-adv="force=1"
#af="volnorm=2:0.25"
vf="pp=hdeblock:autoq/vdeblock:autoq/dering:autoq"
#vf="pp=hdeblock:autoq/vdeblock:autoq/dering:autoq/cubicipoldeint"
#--------------------
vo=macosx
ao=macosx
#vo=gl2:yuv=3:lscale=1
double=yes
font=/Library/Fonts/Arial.ttf
autosync=100
framedrop=yes
quiet=yes
#adapter=2
#fs=yes

Да, еще мой пример расчитал на то что в папке /Library/Fonts/ будет лежать шрифт Arial.ttf из винды.


Статья написана Кривенковым Егором aka Avallac_h

При компировании указывайте ссылку на эту статью!

Категория: Статьи по Mac OS | Добавил: Avallac_h (21.12.2008)
Просмотров: 1941 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта
Категории каталога
Статьи по Mac OS [2]
Статьи,написанные Avallac_h
Статьи по Windows [3]
Статьи, написанные apd2004
Форма входа
Поиск
Друзья сайта
Наш опрос
Оцените мой сайт
Всего ответов: 42
Copyright MyCorp © 2024
Хостинг от uCoz