(Продолжение, начало см. в МК № 49, 5152, 1 (168, 170172))
Чаще всего новички в Линуксе задают мне два вопроса: как устанавливать программы и как смотреть видео. Поэтому вместо описания гномьих красот я решил рассказать о более насущном.
Видео в Линуксе
Эта статья убивает сразу двух зайцев, отвечая на оба вопроса. Правда, на первый лишь частично, потому как инсталляция приложений в Линуксе тема довольно большая и тонкая. Как уже говорилось ранее и вскользь, есть два способа установки программы ее компиляция из исходников и инсталляция RMP-пакетов, которые, как правило, содержат в себе уже откомпилированные под конкретное программное окружение программы. Сегодня я коснусь только первого метода, как наиболее универсального и близкого духу Линукса. Разумеется, понадобится идеальный пример, то есть продукт, который даже полный чайник сможет откомпилировать без проблем. И вместе с тем это продукт чрезвычайно полезный, хоть он и не входит, насколько я знаю, в поставку популярных дистрибутивов Линукса. Речь идет об видеоплейере с весьма прозаичным названием MPlayer. Знали бы вы, что за чудо инженерной мысли за ним скрывается! Впрочем, сейчас узнаете.
Вкратце о положении видео в Линуксе вообще. Туго, братцы, туго! Это на неискушенный взгляд. Те проги, что обычно идут с дистрибутивами (Gtv MPEG Player, XMovie и другие), не совсем удобны, развиваются не то чтобы медленно, но и не быстро, а вдобавок не поддерживают DivX/MPEG4 а какой прок от плейера, который не держит самый популярный нынче формат? Да, вы можете скачать с http://www.mydivx.com кодек, попытаться подружить его с каким-то ветхозаветным плейером, но ничего путного из этого не выйдет. Да и зачем пудрить себе мозги, если можно установить ВЕЛИКОЛЕПНЫЙ (я не боюсь этого эпитета) плейер MPlayer (http://www.mplayerhq.hu), аналога которому нет даже в мире Windows (впрочем, BSPlayer уверенно развивается качайте свежие релизы с http://www.bstnet.org/bsplay).
Чем так хорош MPLayer? Во-первых, он показывает все что угодно, используя кодеки для DivX/MPEG4, Video CD (MPEG 1), DVD (MPEG 2), старый QuickTime (формат нового QT, увы, засекречен), Windows Media Video 7 и 8, XAnim, VIVO, FLI, Indeo5 и другие. Оптимизирован, понятное дело, для работы с DivX. Еще один момент... Запомните, что сжатие определенным кодеком это еще не формат файла. Сейчас популярен формат AVI. Файлы в нем содержат в себе видео, которое может быть сжато НЕКОТОРЫМИ кодеками DivX, Indeo5, MPEG 1, и так далее. Поэтому нужно в большей мере обращать внимание не на то, какие «форматы файлов» понимает плейер, а с какими кодеками он работает! Куча старых или слаборазвитых плейеров отлично проиграют вам AVI, в котором видео компрессировано в MPEG 1, и сдадутся, попав на DivX.
Второй плюс MPlayer'а дайте ему любую видеокарту, любой монитор, и он покажет вам видео! Древний текстовый терминал? Ха... Получите видео в текстовом режиме, через библиотеку AALIB. А вот еще пущий изврат нет монитора. Ну, тогда MPlayer можно заставить выдавать кадры в отдельные PNG(или других форматов)-файлы. Касательно видях плейер тесно взаимодействует на «нижнем» уровне с уже ставшей легендарной серией Voodoo, современными Matrox'ами, Rage128 (Pro) и Radeon, дружит и с остальными картами ATI Mach64, TNT, GeForce 2/3, Savage3D/Savage 4 (об S3 Virge ничего не скажу). Ежели на карте есть порт Video OUT, то плейер может выдавать сигнал и туда (подробнее читайте в документации).
MPlayer на этапе компиляции тесно привязывается к типу процессора и имеющимся у вас библиотекам. К процессору для оптимизации. MPlayer сделан таким образом, что под Athlon он компилируется с инструкциями 3DNow! всех уровней; под новый Пень SSE2, и там, где возможно, работает с MMX. В итоге производительность держится где-то на уровне BSPlayer (который раза в четыре шустрее стандартного Windows Media Player). Вот почему MPlayer распространяется только в исходниках чтобы при компиляции его можно было «заточить» конкретно под вашу машину. Давайте посмотрим, что нам понадобится для успешной компиляции плейера, что придется скачать и откуда именно.
Первое окружение, то есть утилиты и библиотеки. По идее, все это имеется в вашем дистрибутиве Линукса (только он не должен быть очень старым :-)). Если нет, или дистрибутив древний придется качать свежие версии. Итак, надо:
Набор утилит binutils (начиная с версии эдак 2.10), сервер XFree86 (желательно с 4.0.2 и выше), утилиту сборки make (3.79 и выше), еще хорошо бы иметь библиотеку SDL (Simple Media Layer, нечто вроде мультимедийной подсистемы для унификации доступа к графике и музыке см. http://www.libsdl.org). Плюс, самое главное, компилятор gcc (http://gcc.gnu.org). Желательно версию, отличную от 2.96, которая вызвала настоящий флейм между разработчиками MPlayer и его пользователями доходило даже до нецензурных слов со стороны последних! Дело в том, что некогда включенный в состав Linux RedHat компилятор GCC версии 2.96 игнорирует весь код, оптимизированный под 3DNow!, SSE и их модификации. Но! В зависимости от некоторых условий номера билда, системного окружения (до сих пор непонятно, что ему нужно). У меня именно этот «баговый» компилятор, и тем не менее все в порядке. У других проблемы, которые НЕ решаются. Впрочем, сам GCC давно уже перешагнул третью версию, так что можно скачать свежак правда, он здоровенный, и устанавливать его желательно, вооружась знанием английского (чтобы читать документацию по установке) и некоторым опытом. Одним словом, тема выходит за пределы этой статьи. А если хотите узнать про перепалки между разработчиками MPlayer и пользователями подробнее, читайте в директории с документацией два файла: users_against_developers.html и gcc-2.96-3.0.html это песня... Но мы споем о другом!
Для GUI (графического интерфейса) нужны такие библиотеки: GTK, libpng (изображения в скинах находятся в формате PNG) и ее версия для разработчиков (поищите в своем дистрибутиве Линукса пакеты, названные libpng2 и libpng-devel, а если их нет, то идите на www.libpng.org и берите оттуда)
Кодек DivX4 качается с http://download.divx.com/videocodecs/linux/divx4linux-20011010_4.02.tgz, затем распаковывается, устанавливается командой ./install.sh из директории, куда вы распаковали кодек. Еще нужно добавить путь /usr/local/lib в файл /etc/ld.so.conf, если там нет этой строки, хотя по идее установочный скрипт делает это автоматически. Но... Все может быть :-).
Третье дистрибутив плейера. На сайте выложены две версии: официальный релиз и CVS-версия. Я рекомендую скачать последнюю. CVS это такая система, позволяющая контролировать версии. Она используется для совместной разработки программы несколькими разработчиками, в частности по сети, позволяя избежать путаницы с версиями. Программисты добавляют новый код, модифицируют существующий, и все это «синхронизируется» и отслеживается по CVS. CVS-версия всегда опережает официальный релиз и, как правило, уходит далеко вперед. Беда многих продуктов в том, что CVS-релизы бывают очень глюкавыми, но в случае с Mplayer в этом отношении все нормально. Итак, качайте версию CVS, она более свежая http://www2.mplayerhq.hu/MPlayer/cvs/MPlayer-current.tar.bz2.
В Konqueror'е просто заходим в архив, как в обычную папку, и тащим содержимое архива куда-нибудь в другую директорию архив начнет распаковываться. Сжатие там просто сумасшедшее почти девятиметровые исходники уместились в двух мегабайтах архива! Поэтому готовьтесь к длительному процессу распаковки он долог даже на вроде бы нехилом Athlon 900.
Компиляция хорошо «оформленного» исходника программы состоит из двух этапов конфигурирования и собственно компиляции. Конфигурируем-то что именно? Параметры компиляции. Именно на этапе конфигурирования мы придадим плейеру тот вид, те свойства, которые хотим видеть. Из директории, куда вы распаковали дистрибутив, выполняем команду:
Это покамест для тестирования, чтоб знать, будет ли вообще все работать. Параметр disable-gcc-checking НУЖЕН, если у вас вышеупомянутый компилятор. А с этим параметром можно попробовать и откомпилировать... В этом случае скрипт все равно обругает компилятор, но вы тихенько нажмите Enter, и процесс пойдет. На консоль должна вывестись информация о проверке, что есть в вашей системе, а чего нет. Примерно вот так:
И так далее... Все это отнюдь не пустая информация если вы не знаете, какие библиотеки установлены, то просмотр этих сообщений хороший способ узнать, что вам нужно. Обратите внимание на строки с «резюме» (после «Config files successfully generated by ./configure!). Примерно вот такие (с моими комментариями):
В первой строке сообщается, куда после компиляции будет помещен исполняемый файл плейера (mplayer) и кодировщик mencoder (это утилита на случай, если вам понадобится конвертировать видео из одного формата в другой), а в двух других строках где находятся директории с необходимыми ему файлами:
Далее перечисляются включенные устройства ввода, кодеки, звуковой вывод и видеовывод. Последнее стоит запомнить это те режимы, в которых вы можете смотреть видео. Главное, чтобы «держалась» SDL (она работает очень стабильно, предоставляя при этом хорошие возможности):
Далее, если вы хотите получить список параметров конфигурационного скрипта, запустите его с --help. Большинство параметров задавать не нужно, они устанавливаются автоматически. Но обратим внимание на две вещи. Во-первых, на выбор языка:
--language=xx (здесь хх может принимать одно из следующих значений: cz, de, dk, en, es, fr, hu, it, ko, nl, no, pl, ro, ru) то есть, если вам нужен русский, то используйте --language=ru, а английский --language=en.
Правда, тем многочисленным отечественным пользователям, терпящим от проблем с «кривой» русификацией, пожалуй, стоит рекомендовать компилировать с английским языком. У меня хоть подобная «кривизна» и не наблюдается, но в Линуксе я держусь хорошей привычки работать с «интернациональным» английским, а потому меня не беспокоит тот факт, что на русский переведена лишь малая часть документации по MPlayer, и то каким-нибудь электронным переводчиком (некоторые фразы читать решительно невозможно).
Другая опция, заслуживающая более пристального внимания:
Эта опция включает графический интерфейс. Вы сможете использовать и консольный, и GUI-режимы, но чтобы GUI работал, его поддержку надо включить прямо сейчас, до компиляции. Интерфейс поддерживает скины, причем любопытна одна деталь в Гноме скины с непрямоугольными границами отображаются нормально, а под KDE они ограничиваются прямоугольником, вдобавок, области скина, которые должны быть прозрачными, глухи как стены... Так, а теперь проведем окончательное конфигурирование, уже с помощью команды
Если ничего не вышло, то устанавливайте то, чего вам не хватает для успешной компиляции скрипт подробно об этом рассказывает. Если же все ОК (а скорее всего, так оно и будет), то вводим следующую команду:
Процесс компиляции начался, консоль заполняется мудреными сообщениями. А вы ждите, не прерывайте. Make смотрит, какие файлы надо компилировать, и переправляет их компилятору. Когда этот этап завершится, набирайте
Если все хорошо, то исполняемый файл mplayer и кодировщик mencode лягут по умолчанию в /usr/local. Чтобы запускать их без каких-либо ограничений, нужно либо тупо перенести эти файлы в директорию /bin, либо занести /usr/local в системную переменную PATH. Но проще и быстрее первый способ :-).
Если вы думаете, что это все, то ошибаетесь. Во второй части этой статьи будет рассказано, как ПРАВИЛЬНО запускать MPlayer, как настраивать его, использовать скины (скин-браузер еще не готов, их приходится подключать через специальный файл). Для тех, кто горит желанием запустить плейер прямо сейчас, причем ипользуя GUI, то лучше всего сделать это с помощью такой командной строки:
Иначе сочетание SDL + GUI при переключении из fullscreen в оконный и наоборот (клавиша F) вызывает проблемы, а в графику выводить лучше все-таки через более универсальный, чем другие, движок SDL.
P.S. Поскольку во многих читательских письмах мне часто задаются одни и те же вопросы, с целью экономии вашего и своего времени я решил вести FAQ нашего Пингвинария вы его можете отыскать на http://www.roxton.kiev.ua/pngfaq.htm.