Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #74, ФЕВРАЛЬ 2005 г.

Mplayer без секретов

Петр Семилетов aka Roxton

Хакер, номер #074, стр. 074-096-1


(tea@list.ru)

Используем популярный медиаплеер на полную катушку

Большинство людей вполне удовлетворены тем, что используют программы с настройками по умолчанию. Но знаменитое умолчание подразумевает уравниловку, некий усредненный набор настроек, зачастую отнюдь не оптимальных. Так что же, будем сидеть сложа руки? Ни в коем случае! Итак, начинаем тотальную оптимизацию, под наркозом и без. А в роли пациента будет выступать лучший на сегодняшний день проигрыватель медиафайлов - Mplayer.

Подготовка

Только сборка Mplayer'а из исходников позволит заточить плеер под конкретную систему, включить нужные тебе возможности и отключить все, чем можно пренебречь. А значит, топаем на главный сайт проекта (www.mplayerhq.hu), забираем свежий исходник, скины, распаковываем и компилируем.

Если скрипт конфигурации пишет, что ему чего-то не хватает, то устанавливаем devel-пакеты с заголовочными файлами и библиотеками, которые нужны Mplayer'у. Некоторые из них обязательны, некоторые - нет. В любом случае, читай то, что выводит на экран скрипт configure, - там все подробно расписывается. Если же он сообщает, что твоя версия компилятора ему не нравится, тогда тебе повезло - твой дистрибутив древний и с такой версией GCC, которая считается разработчиками Mplayer'а очень глючной (имеется в виду 2.96), пахать не хочет. В случае возникновения этой проблемы передай своему скрипту, чтобы он не обращал внимания на версию:

# ./configure --disable-gcc-checking

И не забудь, что для компиляции Mplayer'а с поддержкой графического интерфейса нужно сделать две вещи: установить devel-пакет от GTK 1.x (именно первого GTK, не второго) и добавить к параметрам configure ключик --enable-gui:

# ./configure --enable-gui

Прежде чем запускать плеер, позаботься об использовании в нем качественных, точных таймеров. Mplayer поддерживает несколько видов таймеров. Есть программный, который включается опцией -softsleep, однако он потребляет немало вычислительных ресурсов. Целесообразнее использовать таймер RTC (Real Time Clock). Как правило, доступ к нему имеет только root. Чтобы получить доступ к RTC и в аккаунте обычного пользователя, необходимо переопределить права для псевдоустройства /dev/rtc. Задать частоту таймера можно, прописав в файле /etc/sysctl.conf строчку

dev.rtc.max-user-freq = 1024

Таким образом, значение будет устанавливаться при каждом старте Linux. И дай команду в консоли, чтобы изменения вступили в силу прямо сейчас:

# echo 1024 > /proc/sys/dev/rtc/max-user-freq

Таймер RTC обеспечивает точность в 1 миллисекунду, а обычный таймер, не softsleep, - 10 миллисекунд.

Только консоль

Теперь обратимся к консоли. Я понимаю, что графический интерфейс удобен в некоторых случаях, но Mplayer всегда был ориентирован на консоль, GUI же в нем вторично. Консольная версия Mplayer'а для знающего человека проста и удобна. Ничто не сравнится с быстротой ее запуска. В пальцах, лежащих на клавиатуре, таится волшебство. Знаешь ли ты, что клавишами + и - на цифровой части клавы можно подстраивать синхронизацию звука и видео? А знаешь ли ты, что 0 и 9 уменьшают и увеличивают громкость? И что остальные клавиши с цифрами от 1 до 8 регулируют контраст, яркость, оттенок и насыщенность? Что до последних, то работают они только в случае использования режима вывода с аппаратной акселерацией, например xv, (x)vidix или (x)mga), либо при включенном программном эквалайзере. Как его включить? Опцией видеофильтра, указав включение эквалайзера как параметр к этому фильтру: mplayer -vf eq имя_файла или mplayer -vf eq2 имя_файла. А хочешь, фокус покажу? Вот так можно смотреть фильм в негативном отображении:

Содержание  Вперед на стр. 074-096-2
<<< НАЗАД ||| ГЛАВНАЯ