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 При компировании указывайте ссылку на эту статью!
|