Оптимизация Linux для просмотра Mpeg4/DivX


MPEG4 & Linux
(пошаговая инструкция)


Итак, фильмов в MPEG4 становиться всё больше, перегружаться M$-WinDOZE для их просмотра неохота, также как и держать их только для просмотра фильмов. Hачинаем изыскивать возможности смотреть фильмы под Linux...

Выбор проигрывателя.

Сначала Я рванул на divx.euro.ru, выкачал там avifiles и попытался его собрать... Оно требовало библиотеку qt более другой версии чем установлена у меня, пришлось выкачивать qt, потом qt-devel, потом... вобщем я так и не понял что ещё от qt ему не хватало для сборки забил на avifiles и отправился на freshmeat.net посмотреть что там есть. Из того что нашел остановился на mplayer, который живет здесь http://www.mplayerhq.hu Вобщем на нём я и остановился.

Hеобходимые файлы

Для просмотра MPEG4 кроме самого mplayer понадобятся ещё и набор кодеков к нему. Их можно взять с видовой машины, или на томже сайте где mplayer. Положить их в каталог /usr/lib/win32/ и в целях безопасности поставить им пермишены 444. Кроме того на машине должно быть всё необходимое для сборки X-овых приложений.

Собираем

Распаковываем mplayer в удобный каталог, ./configure, и внимательно читаем что оно пишет. Если установлены SDL и SDL-devel версий 1.1.7 и больше, то можно запустить ./configure --enable-sdl, что появилась возможность изменять размер окна просмотра и даже FullScreen, но качество увеличенной картинки получается припохабное! Вообщем на любителя.... Потом сказать make. Появившийся файл mplayer положите к своим бинарям и можно работать...

Тормоза...

В XFREE версий до 4 для ускорения работы можно настроить MTRR. Как это делается:
1. cat /proc/mtrr . Если это файла нет то необходимо пересобрать ядро с поддержкой MTRR.
2. Определяем начало видеопамяти. Посмотреть адрес можно при загрузке XFREE. Если выдается более одного адреса то смотреть нужно тот который prefetchable
3. Определяем размер видеопамяти и переводим его в HEX вид. Для неумеющих есть табличка ;)
   Размер памяти
   в мегабайтах    HEX
        1        0x100000
        2        0x200000
        4        0x400000
        8        0x800000
        16      0x1000000
        32      0x2000000
        64      0x4000000
4. echo "base=HАЧАЛО_ВИДЕОПАМЯТИ size=РАЗМЕР_ВИДЕОПАМЯТИ type=write-combining" > /proc/mtrr.
Hапример: echo "base=0xd6000000 size=0x1000000 type=write-combining" > /proc/mtrr
Всё - скорость возросла от полутора до двух раз. Если и сейчас тормозит то поставте себе XFREE версии 4 с расширением Xv, и/или замените видеокарту на Matrox G400, и используйте mga_vid.

Отстрел траблов

o Как правило попадаются фильмы которые сразу не играются, но если скормить параметр -nosound то смотряться. В этом случае можно попробовать скормить опцию -afm 1 или -afm 4 o При первом запуске и использовании некоторых звуковых драйверов может ругнуться на чтото типа HAVE_AUDIO_SELECT. Тогда придеться в config.h #define HAVE_AUDIO_SELECT заменить на #undef HAVE_AUDIO_SELECT, потом make clean;make

Смотрите с следующей версии

o Разобраться с XFREE версии 4. Сейчас всё сказано и работает для 3.3.6
o Багфиксы ;)


(c) Igor Tihonov, 2000 г