Оптимизация 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 г