From 52204b1e9381b7c856be3e16dc795a97b041b068 Mon Sep 17 00:00:00 2001 From: voroshil Date: Sat, 16 Sep 2006 10:15:42 +0000 Subject: translation by Vladimir Voroshilov, voroshil gmail com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19851 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/ru/video.xml | 2546 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2546 insertions(+) create mode 100644 DOCS/xml/ru/video.xml (limited to 'DOCS') diff --git a/DOCS/xml/ru/video.xml b/DOCS/xml/ru/video.xml new file mode 100644 index 0000000000..4315b4f8c1 --- /dev/null +++ b/DOCS/xml/ru/video.xml @@ -0,0 +1,2546 @@ + + + +Устройства вывода видео + + +Настройка MTRR + + +ОЧЕНЬ важно проверить, правильно ли установлены MTRR регистры, +поскольку они могут дать большой прирост производительности. + + + +Выполните cat /proc/mtrr: + +--($:~)-- cat /proc/mtrr +reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 +reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1 + + + +Здесь все верно, показана моя Matrox G400 с 16Мб памяти. Я выполнил это из-под +XFree 4.x.x , который автоматически устанавливает регистры MTRR. + + + +Если ничего не сработало, вам придется сделать это вручную. Во-первых, +вы должны определить базовый адрес. Существует три способа выяснить его: + + + + из сообщений запуска X11, например: + +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 +(--) SVGA: Linear framebuffer at 0xD8000000 + + + из /proc/pci (используйте команду lspci -v): + +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 +Memory at d8000000 (32-bit, prefetchable) + + + + из сообщений драйвера ядра mga_vid (используйте dmesg): + mga_mem_base = d8000000 + + + + + +Теперь давайте найдем объем памяти. Это очень просто, просто преобразуйте +размер видео памяти в шестнадцатеричный формат, или используйте таблицу: + + + +1 MB0x100000 +2 MB0x200000 +4 MB0x400000 +8 MB0x800000 +16 MB0x1000000 +32 MB0x2000000 + + + + + + +Вы знаете бызовый адрес и размер памяти, так давайте настроим регистры MTRR! +Например, для вышеуказанной карты Matrox (base=0xd8000000) +с 32Мб памяти (size=0x2000000) просто выполните: + +echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr + + + + +Не все CPU имеют MTRR. Например, старый K6-2 (около 266MHz, +степпинг 0) не имеет MTRR, но у степпинга 12 они уже есть +(запустите cat /proc/cpuinfo чтобы это проверить). + + + + +Видео вывод для традиционных видео карт + +Xv + + +Под XFree86 4.0.2 или новее, вы можете использовать функции работы с YUV[YUV routines] +вашей видеокарты, используя расширение XVideo, то, которое используется при указании опциии +''. + +К тому же этот драйвер поддерживает управление +яркостью/контрастностью/цветностью/и т.д. (кроме случая использования старого ,медленного +DivX кодека DirectShow, котороый везде это поддерживает), смотрите страницу man. + + + + +Чтобы заставить его работать, убедитесь, что выполняется следующее: + + + + Требуется использовать XFree86 4.0.2 или новее (предыдущие версии не меют XVideo) + + + Ваша карта действительно поддерживает аппаратное ускорение (современные - да) + + + X загружают расширение XVideo, это похоже на: + (II) Loading extension XVideo + в /var/log/XFree86.0.log + + Это всего лишь загружается расширение XVideo. При нормальной установке оно грузится + всегда, это не означает, что загружена аппаратная + поддержка XVideo. + + + + Ваша карта имеет поддержку Xv для inux. Чтобы это проверить, запустите + xvinfo, являющуюся частью дистрибутива XFree86. Она должна + выдать на экран длинный текст, похожий на этот: + +X-Video Extension version 2.2 +screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 +(...) + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) +(...и т.д....) + Карта должна поддерживать YUY2 пакованные и YUV12 планарные[planar] форматы + пикселов, чтобы быть полезной в MPlayer. + + + И, наконец, проверьте, что MPlayer собран с + поддержкой 'xv'. Выполните mplayer -vo help | grep xv . + Исли поддержка 'xv' включена, то увидите похожую строку: + + xv X11/Xv + + + + + +3dfx карты + + +Хорошо известно, что старые 3dfx драйвера имеют проблемы с ускорением XVideo, они не +поддерживают ни YUY2 ни YV12, и т.п. Проверьте, что у вас XFree86 версии +4.2.0 или новее, он хорошо работает с YV12 и YUY2. Предыдущие версии, +включая 4.1.0, с YV12 приводят к краху. + +Если вы столкнулись со странными эффектами при использовании , +попробуйте SDL (он тоже имеет поддержку XVideo), и посмотрите поможет ли это. Обратитесь к +разделу SDL за подробностями. + + + +ИЛИ, попробуйте НОВЫЙ + драйвер! Смотрите раздел tdfxfb. + + + + + +S3 карты + + +S3 Savage3D, должны прекрасно работать, но для Savage4 используйте XFree86 версии 4.0.3 или +выше (в случае проблем с изображением попробуйте 16bpp). По поводу S3 Virge: +она поддерживает xv, но карта сама по себе слишком медленная, так что лучше будет ее +продать. + + +Существует родной драйвер фреймбуфера для карт S3 Virge, аналогичный +tdfxfb. Настройте ваш фреймбуфер (например, укажите ядру +"") и воспользуйтесь + ( и +тоже помогут). + + + + +Пока не ясно в каких моделях Savage отсутствует поддержка YV12, и преобразование +осуществляется драйвером (медленно). Есл вы грешите на свою карту, возьмите +свежий драйвер иди вежливо спросите в списке рассылки MPlayer-users +о драйвере с поддержкой MMX/3DNow!. + + + + + + +nVidia карты + + +nVidia под Linux - не всегда хороший выбор ... Открытые драйвера XFree86 +поддерживают большинство этих карт, но в некоторых случаях придется +использовать закрытый бинарный драйвер от nVidia, доступный на +сайте nVidia. +Этот драйвер также всегда необходим для задействования 3D ускорения. + + + + +Карты Riva128 не имеют поддержки XVideo с драйвером nVidia от XFree86 :( +Подайте жалобу nVidia. + + + +Тем не менее, MPlayer имеет +VIDIX драйвер для большинства карт nVidia. Сейчас он +в стадии беты и имеет некоторые недостатки. За подробостями обращайтесь +к разделу nVidia VIDIX. + + + + + +ATI карты + + +Драйвер GATOS +(который стоит использовать, если у вас не Rage128 или Radeon) по-умолчанию имеет включенную +опцию VSYNC. Это значит, что скорость декодирования (!) синхронизирована с частотой обновления +монитора. Если воспроизведение кажется медленным, попробуйте как-нибудь отключить VSYNC или +установите частоту обновления в n*(fps[кадров/с] фильма) Гц. + + + +Radeon VE - если нужен X, используйте XFree86 4.2.0 или новее. +Нет поддержки TV-выхода. Конечно, с MPlayer вы можете успешно +получить ускоренное отображение, с или без +TV-выхода, без каких-либо библиотек X. +Читайте раздел VIDIX. + + + + + +NeoMagic карты + + +Эти карты можно найти во многих ноутбуках. Вы должны использовать XFree86 4.3.0 или +более новый, или использовать +Xv-совместимые драйвера. +от Stefan Seyfried. Просто выберите подходящий для вашей версии XFree86. + + + +XFree86 4.3.0 включает поддержку Xv, недавно Bohdan Horst отослал небольшой +патч +для исходников XFree86, ускоряющий операции с фреймбуфером (и XVideo) в четыре раза. +Патч был включен в XFree86 CVS и должен быть в следующем релизе после 4.3.0. + + + +Чтобы сделать возможным воспроизведение фильмов DVD разрешения поправьте ваш XF86Config как +указано здесь: + +Section "Device" + [...] + Driver "neomagic" + Option "OverlayMem" "829440" + [...] +EndSection + + + + + +Trident карты + +Если хотите использовать Xv с картой Trident, учитывая, что они не работают с +4.1.0, установите XFree 4.2.0. +4.2.0 добавляет поддержку полноэкранного Xv с картой Cyberblade XP. + + + +Другой вариант: MPlayer имеет +VIDIX драйвер для карт Cyberblade/i1. + + + + + + +Kyro/PowerVR карты + +Если хотите использовать Xv с картами на базе Kyro (например, +Hercules Prophet 4000XT), следует скачать драйверы с +сайта PowerVR + + + + + + + +DGA + + +ПРЕАМБУЛА + +Этот документ пытается сказать несколько слов о том, что такое DGA в целом и +что можт сделать DGA драйвер для MPlayer +(а что нет). + + + + +ЧТО ТАКОЕ DGA + +DGA это сокращение от Direct Graphics +Access[Прямой Доступ к Графике] и означает обход +программами X сервера и прямое изменение ими памяти фреймбуфера. +Говоря техническим языком, это происходит при помощи отображения[mapping] +памяти фреймбуфера в адресное простанство вашего процесса. Это позволяется +ядром, только если у вас есть привилегии суперпользователя. Вы можете +получить их либо войдя в систему под именем +root, либо установив SUID бит на +испольняемый файл MPlayer (не +рекомендуется). + + + +Есть две версии DGA: DGA1 используется XFree 3.x.x и DGA2, появившийся в XFree 4.0.1. + + + +DGA1 предоставляет только прямой доступ в фреймбуферу, как описано выше. +Для переключения виеорежимов придется обратиться в расширению XVidMode. + + + +DGA2 объединяет возможности расширения XVidMode и, к тому же, позволяет изменять +глубину цвета отображения. Таким образом, вы можете,работая, в основном, +в X с 32-х битной глубиной цвета, переключиться на глубину 15 бит и наоборот. + + + +Однако DGA имеет некоторые недостатки. Похоже, оно каким-то образом зависит от +используемого графического чипа и реализации видеодрайвера сервера X, +управляющего этим чипом. Так что он работает не на всех системах. + + + +УСТАНОВКА ПОДДЕРЖКИ DGA ДЛЯ MPLAYER + + +Во-первых, убедитесь, что X загружает расширение DGA, смотрите в +/var/log/XFree86.0.log: + +(II) Loading extension XFree86-DGA + +Смотрите, крайне рекомендуется XFree86 4.0.x или старше! +DGA драйвер программы MPlayer определяется автоматически скриптом +./configure, или можете принудительно указать его использование +опцией . + + + + +Если драйвер не смог переключиться на меньшее разрешение, поэкспериментируйте с +опциями (только для X 3.3.x), , +, чтобы найти видеорежим +в который поместиться фильм. Конвертера Пока что нет :( + + + +Получите права root. DGA требует +права root для прямой записи в видеопамять. Если хотите запускать от имени обычного +пользователя, установите бит SUID на MPlayer: + + +chown root /usr/local/bin/mplayer +chmod 750 /usr/local/bin/mplayer +chmod +s /usr/local/bin/mplayer + + +Теперь это работает и под обычным пользователем. + + + +Риск безопасности + +В этом заключается большой риск безопасности! +Никогда не делайте этого на сервере или комппьютере, +к которому имеют доступ другие люди, т.к. они могут получить права root через +MPlayer с битом SUID. + + + + +Теперь используйте опцию , и вперед! (мы надеемся :) +Можете попробовать, работает ли у вас опция ! +Это намного быстрее! + + + + +ПЕРЕКЛЮЧЕНИЕ РЕЖИМОВ + + +DGA драйвер позволяет переключать режимы (менять разрешение) выходного сигнала. +Это позволяет избежать (медленного) программного масштабирования и в то же +время предоставить полкоэкранное изображение. В идеале следует переключаться в +режим с таким же (необязательно с сохранением пропорций) как у видеоданных разрешением, +но X сервер позволяет переключаться в режимы, предопределенные в +/etc/X11/XF86Config +(/etc/X11/XF86Config-4 для XFree 4.X.X соответственно). +Они определяются так называемыми моделайнами[modelines] и зависят +возможностей вашей видеокарты. X сервер читает этот файл при старте и +отключает режимы, недопустимые для вашего оборудованиея. Вы можете определить +какие режимы остались, посмотрев лог файл X11. Он может быть найден в: +/var/log/XFree86.0.log. + + + + +Вот значения, про которые известно, что они работают с чипом Riva128 при +использовании X драйвера nv.o. + + + + +Section "Modes" + Identifier "Modes[0]" + Modeline "800x600" 40 800 840 968 1056 600 601 605 628 + Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 + Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 + Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan + Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 + Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan + Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan +EndSection + + + + +DGA & MPLAYER + +DGA используется программой MPlayer двумя способами: +можно указать SDL использовать его () и +с помощью DGA драйвера (). Все сказанное выше верно для обоих; +в следующих разделах будет расказано как работает DGA драйвер для +MPlayer. + + + + + +ВОЗМОЖНОСТИ + + +DGA запускается указанием в командной строке. По-умолчанию, +он пытается переключить режим с ближайшим к оригинальному видео разрешением. +Он преднамеренно игнорирует опции и +(переключение видеорежимов и полноэкранный режим) - он всегда старается +занять как можно большую площадь экрана переключением видеорежима, +избегая таким образом использования дополнительных тактов CPU для +масштабирования изображения. Если выбранный режим вам не нравится, можете +принудительно указать использовать разрешение ближайшее к указанному вами опциями + и . При указании опции +, DGA драйвер выведет, кроме множества других вещей, список +всех поддерживаемых режимов, указанных в XF86Config. +Имея DGA2 вы также можете указать использование определенной глубины цвета +при помощи опции . Допустимыми значениями являются 15, 16, 24 и 32. +Зависит от оборудования, какие значения поддерживаются аппаратно, а для каких необходимо +производить (возможно медленное) преобразование. + + + + +Если вам повезло иметь достаточно свободной памяти[offscreen memory], чтобы поместить +туда изображение целиком, DGA драйвер будет использовать двойную буферизацию, +что приведет к более плавному воспроизведению фильма. Он сообщит вам включена ли +двойная буферизация или нет. + + + +Двойная буферизация означает, что каждый следующий кадр вашего фильма рисуется +в некоторую память[offscreen memory], пока отображается теущий кадр. +Когда следующий кадр готов, графическому чипу сообщается его расположение +в памяти, и чип просто выбирает оттуда данные для отображения. +В это время новыми видео данными заполняется другой участок буфера. + + + +Двойная буферизация может быть задействована опцией + и отключена при помощи +. В данный момент двойной буфер по-умолчанию отключен. +При использовании DGA драйвера, экранное отображение (OSD) работает только +с двойной буферизацией. Однако, включение двойной буферизации может привести +к существенному снижению скорости (на моем K6-II+ 525 оно использует дополнительные +20% времени CPU!) в зависимости от реализации DGA для вашего оборудования. + + + + +ПРОБЛЕМЫ БЫСТРОДЕЙСТВИЯ + + + +Проще говоря, DGA доступ к фреймбуферу должен быть настолько быстр, насколько +быстр используемый X11 драйвер c дополительной выгодой[benefit] получения +полкоэкранного изображения. Процентные значения скорости, выводимые +MPlayer, должны интерпретироваться с некоторой +осторожностью, например, с драйвером X11 они не включают время, используемое +сервером X11 непосредственно для прорисовки. Подключите терминал к +последовательному порту и запустите top, чтобы +увидеть, что на самом деле происходит. + + + + +Проще говоря, ускорение, полученное от использования DGA относительно +'обычного' использования X11, сильно зависит от видео карты и того, +насколько хорошо оптимизирован модуль X11 для него. + + + +Если у вас медленная система, лучше использовать глубину 15 или 16 бит, +поскольку это потребует половину пропускной способности памяти 32-х +битного дисплея. + + + +Даже использование глубины 24 бита - хорошая идея, если ваша карта +аппаратно поддерживает только 32 бита, поскольку передается на 25% +меньше данных по сравнению с режимом 32/32. + + + +Приходилось видеть, как некоторые AVI файлы воспроизводились на Pentium MMX 266. +AMD K6-2 CPU может работать начиная с 400 МГц и выше. + + + + +ИЗВЕСТНЫЕ ОШИБКИ + + +Ну, по мнению некоторых разработчиков XFree, DGA - это немного монстр. +Они говорят, что лучше его не использовать. Его реализация не +безупречна для любого существующего драйвера XFree. +изъянов. + + + + + + С XFree 4.0.3 и nv.o существует ошибка приводящая + к странным цветам. + + + ATI драйвер требует неоднократного переключения режима после + завершения использования DGA. + + + Некоторые драйвера просто не в состоянии переключиться обратно в + нормальный режим (используйте + Ctrl+Alt+Keypad + и + Ctrl+Alt+Keypad - + для нормального переключения). + + + Некоторые драйвера просто отображают странные цвета. + + + Некоторые драйвера неверно сообщают о количестве памяти, которое они отобразли в + адресное простарство процесса, так что vo_dga не будет использовать + двойную буферизацию (SIS?). + + + Некоторые драйвера, похоже, не могут сообщить даже об одном верном режиме. + В этом случае DGA рухнет, сообщая о невероятном режиме + 100000x100000 или о чем-нибудь похожем. + + + OSD работает только с задействованным двойным буфером (иначе он моргает). + + + + + + + + + +SDL + + +SDL (Simple Directmedia Layer) - это, в основном, унифицированный +видео/аудио интерфейс. Программы, его использующие, знают только про SDL, а не про +то, какой видео или аудио драйвер реально используется. Например, порт игры Doom, +используя SDL, может запуститься на svgalib, aalib, X, fbdev и других, вам +придется только указать (для примера) используемый видеодрайвер при помощи +переменной окружения SDL_VIDEODRIVER. Ну, в теории. + + + + +Для карт/драйверов, не поддерживающих XVideo, мы использовали в +MPlayer собственные возможности программного масштабирования +SDL'вских X11 драйверов, пока не написали наш собственный (более быстрый и изящный) +программный модуль масштабирования. Также мы использовали его aalib вывод, но +теперь у нас есть свой, более удобный. До некоторых пор его DGA режим был +лучше нашего. Хотите получить его прямо сейчас ? :) + + + +Он также помогает с некоторыми сбоящими драйверами/картами, если видео +прерывается (если это не проблема недостаточного быстродействия), или заикается звук. + + + +SDL видео вывод поддерживает отображения субтитров внизу, на черной полосе (если она есть). + + + +Есть несколько параметров командной строки для SDL: + + + + указывает исользуемый SDL видео драйвер (например, aalib, + dga, x11) + + + + + + указывает используемый SDL аудио драйвер (например, dsp, + esd, artsc) + + + + + + отключает ускорение XVideo + + + + + + пытается включить ускорение XVideo принудительно + + + + + +клавиши управления SDL + + +КлавишаДействие + + +c + циклическое переключение доступных полноэкранных режимов + +n + возврат в нормальный режим + + + +
+ + +Известные ошибки: + + Клавиша ,нажатая при использовании sdl:driver=aalib, бесконечно повторяется. + (используйте !). Это оишбка SDL, я не могу ее исправить + (проверено с SDL 1.2.1). + + + НЕ ИСПОЛЬЗУЙТЕ SDL с GUI! Это не работает так как должно. + + +
+ + + +SVGAlib + + +УСТАНОВКА + +потребуется установить svgalib и ее пакет разработки, чтобы +MPlayer собрал свой SVGAlib драйвер (определяется +автоматически, но можко включить принудительно), и отредактировать +/etc/vga/libvga.config в соответствии с вашией картой и монитором. + + + + + +Убедитесь, что не используете опцию , поскольку она включает +использование программного масштабирования и работает медленно. Если вам действительно +это необходимо, используйте опцию , которая будет давать плохое +качество, но несколько быстрее. + + + +ПОДДЕРЖКА EGA (4BPP) + +SVGAlib включает в себя EGAlib, и MPlayer имеет +возможность выводить любой фильм в 16-ти цветах. Используется в таких вариантах: + + + + + + EGA карта с EGA монитором: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp + + + EGA карта с CGA монитором: 320x200x4bpp, 640x200x4bpp + + + + +Значение bpp (бит на пиксел) должно быть вручную установлено в 4: + + + + +Возможно потребуется отмасштабировать фильм, чтобы уместить в размеры EGA режима: +-vf scale=640:350 +or +-vf scale=320:200 + + + +Для масштабировани требуется быстрый алгоритм с плохим качеством: +-sws 4 + + + +Возможно надо отключить автоматическую коррекцию пропорций: +-noaspect + + + +Как показывает мой опыт, лучшее качество на EGA экране получается +при небольшом уменьшении яркости: +. Мне также пришлось уменьшить частоту дискретизации [samplerate] +на моей машине, поскольку звук не работал на 44kГц. +. + + + +ВЫ можете включить OSD и субтитры только с плагином , +смотрите страницу руководства man для точных параметров. + + + + + +Вывод во фреймбуфер (FBdev) + + +Надо ли собирать FBdev автоматически определяется скриптом +./configure. Прочтите документацию на фреймбуйер в +исходниках ядра (Documentation/fb/*) для более подробной +информации. + + + +Если ваша карта не поддерживает стандарт VBE 2.0 (старые ISA/PCI карты, такие +как S3 Trio64), а только VBE 1.2 (или еще старее?): ну, VESAfb все же будет доступна, +но вам потребуется загрузить SciTech Display Doctor (она же UniVBE) до загрузки Linux. +Используйте загрузочный диск DOS или что либо другое. И не забудьте зарегистрировать +ваш UniVBE ;)) + + + +Драйвер FBdev вместе с прочими принимает несколько дополнительных параметров: + + + + + + + указывает какой устройство фреймбуфера использовать + (по-умолчанию: /dev/fb0) + + + + + + название используемого режима (в соответствии с /etc/fb.modes) + + + + + + конфигурационный файл с режимами (по-умолчанию: /etc/fb.modes) + + + + + + + + важные знаячения, смотрите + example.conf + + + + + +При желании переключиться в особый режим используйте: + +mplayer -vm -fbmode название_режима имя_файла + + + + + + в одиночку выберет наиболее подходящий режим из + /etc/fb.modes. Также может использоваться совместно с + и . Опция + поддерживается, только если формат точки фильма совпадает с + форматом точки видеорежима. Обратите внимание на значение bpp, fbdev пытается + использовать текущий или указанный вами опцией . + + + Опция не поддерживается (используйте ). + Вы не можете использовать режимы с 8bpp (или меньше). + + + Вы, возможно, захотите отключить курсор: + echo -e '\033[?25l' + или + setterm -cursor off + и хранитель экрана: + setterm -blank 0 + Чтобы снова включить курсор: + echo -e '\033[?25h' + или + setterm -cursor on + + + + + +Смена режимов FBdev не работает с VESA фреймбуфером. +Не просите об этом, т.к. это не ограничения MPlayer. + + + + + + +Matrox фреймбуфер (mga_vid) + + +Этот раздел о поддержке Matrox G200/G400/G450/G550 BES (Back-End Scaler) +и драйвере ядра mga_vid. +Он имеет поддержку VSYNC с тройной буферизацией. Работает как во фреймбуфер консоли, так и +под X. + + + + +Он только для Linux! На не-Linux системах (проверялось на FreeBSD) можете вместо +него использовать VIDIX! + + + + +Установка: + + чтобы ипользовать его, придется, во-первых, скомпилировать mga_vid.o: + +cd drivers +make + + + Затем создайте устройство /dev/mga_vid: + mknod /dev/mga_vid c 178 0 + и загрузите драйвер: + insmod mga_vid.o + + + Вам следует проверить определение размера памяти, используя + команду dmesg. Если он неверен, укажите опцию + + (но сначала rmmod mga_vid), + указав размер памяти в Мб: + insmod mga_vid.o mga_ram_size=16 + + + чтобы в случае необходимости загружать его автоматической, сначала добавьте + следующую строку в конец файла /etc/modules.conf: + + alias char-major-178 mga_vid + + Затем скопируйте модуль mga_vid.o в соответствующее место в каталоге + /lib/modules/версия_ядра/где_то_тут. + + Затем запустите + depmod -a + + + Теперь надо (пере)скомпилировать MPlayer, + ./configure определит + /dev/mga_vid и соберет драйвер 'mga'. + Использование его в MPlayer осуществляется + опцией , если используете консоль matroxfb, или + опцией из-под XFree86 3.x.x или 4.x.x. + + + + +Драйвер mga_vid работает совместно с Xv. + + + +Из файла устройства /dev/mga_vid можно получать некоторую информацию, +например, командой +cat /dev/mga_vid +В него можно писать для изменения яркости: +echo "brightness=120" > /dev/mga_vid + + + + + +Поддержка 3Dfx YUV + +Этот драйвер использует ядерный драйвер фреймбуфера tdfx для воспроизведения +фильмой с YUV ускорением. Вам потребуется ядро с поддержкой tdfxfb и перекомпиляция с +./configure --enable-tdfxfb + + + + + +OpenGL вывод + + +MPlayer поддерживает воспроизведение фильмов через OpenGL, +но если ваша платформа/драйвер поддердивает xv, как в случае PC с Linux, +лучше используйте xv, производительность OpenGL значительно ниже. Если у вас +реализация X11 без поддержки xv, OpenGL жизнеспособная замена. + + + +К сожалению, не все драйвера поддерживают эту возможность. Драйвера +Utah-GLX (для XFree86 3.3.6) имеют ее для всех карт. +Подробности установки смотрите . + + + +XFree86(DRI) 4.0.3 или новее поддерживает OpenGL с картами Matrox и Radeon, +4.2.0 или более поздние поддерживают и Rage128. +Инструкции по закачиванию и установке смотрите на . + + + +Подсказка от одного из наших пользователей: видео вывод GL может использоваться +для получения синхронизированного по вертикали TV вывода. Необходимо установить +переменную окружения (как минимум для nVidia): + + + +export $__GL_SYNC_TO_VBLANK=1 + + + + + + +AAlib - отображение в текстовом режиме + + +AAlib - это библиотека для отображения графики в текстовом режиме, используя мощный +ASCII рендерер[renderer]. Существует множество программ уже +поддерживающих ее, такие как Doom, Quake, и т.д. MPlayer +содержит очень удобный драйвер для нее. Если ./configure +обнаруживает установленную aalib, будет собран libvo драйвер для aalib. + + + +В AA Window можно использовать некоторые клавиши для изменения настроек рендеринга: + + + + + + КлавишаДействие + + +1 + уменьшить контрастность + +2 + увеличить контрастность + +3 + уменьшить яркость + +4 + увеличить яркость + +5 + включение/отключение быстрого рендеринга + +6 + установка режима зашумления[dithering] (отсутствие, распределение ошибки[error distribution], Floyd Steinberg) + +7 + инвертировать изображение + +8 + переключение между управлением aa и MPlayer + + + + + + +Могут быть использованы следующие опции командной строки: + + + + Смена цвета OSD + + + + + + Смена цвета субтитров + + где V может быть: + 0 (нормальный), + 1 (темный), + 2 (жирный), + 3 (жирный шрифт), + 4 (реверсный[reverse]), + 5 (специальный). + + + + + +AAlib сама предоставляет большое количество опций. Вот некоторые из важных:: + + + + Установить рекомендуемый aa драйвер (X11, curses, Linux). + + + + + + Использовать все 256 символов. + + + + + + Использовать восьмибитную ASCII. + + + + + + Выводит все опции aalib. + + + + + + +Рандеринг очень сильно загружает CPU, особенно при использовании AA-on-X +(использование aalib под X), и меньше при использовании стандартной не-фреймбуфер +консоли. Используйте SVGATextMode, чтобы настроить большой текстовый режим и +наслаждайтесь! (второй выход карт Hercules рулит[secondary head Hercules cards +rock] :) ), но, IMHO, вы можете использовать опцию , чтобы +получить графику на hgafb :) + + + + +Используйте опцию , если ваш компьютер недостаточно быстр +для отрисовки всех кадров! + + + +При воспроизведении на терминале, вы получите лучшую скорость и качество при +использовании драйвера Linux, а не curses(). +Но при этом вы долны иметь право записи в +/dev/vcsa<терминал>! +Это не определяется aalib автоматически, но vo_aa вместо нее пытается определить +лучший режим. Смотрите для +дальнейших задач тюнинга. + + + + + +<systemitem class="library">libcaca</systemitem> - Цветная ASCII Art библиотека + + +Библиотека libcaca - +это графическая библиотека, выводящая чекст вместо пикселов, так что она может +работать на старых видео картах или текстовых терминалах. Она не такая, как +знаменитая AAlib. +libcaca требует терминал для своей работы, +так что она будет работать на всех unix системах (включая Max OS X), используя +библиотеку slang или +ncurses, под DOS используя библиотеку +conio.h, и под windows, используя либо +slang, либо +ncurses (через Cygwin эмуляцию), либо +conio.h. Если скрипт +./configure +определяет libcaca, то caca libvo драйвер +будет собран. + + + +Отличия от <systemitem class="library">AAlib</systemitem> следующие: + + 16 доступных цветов для вывода символов (256 цветовых пар) + + + зашумление[dithering] цветного изображения + + + + +Но <systemitem class="library">libcaca</systemitem> также имеет следующие +ограничения: + + нет поддержки яркости, контрастности, гаммы + + + + +ВЫ можете использовать следующие клавиши в окне caca для именения опций +рендеринга: + + + + + + КлавишаДействие + + +d + Перключение методов зашумления[dithering] libcaca. + +a + Перекллючение сглаживания[antialiasing] libcaca. + +b + Переключение фона libcaca. + + + + + + +<systemitem class="library">libcaca</systemitem> также анализирует следующие +переменные окружения: + + + + Установить рекомендуемый caca драйвер, например ncurses, slang, x11. + + + + + + Указывает количество строк и стольбцов, например, 128x50. + + + + + + Указывает используемый шрифт, например, fixed, nexus. + + + + + +Испольуйте опцию , если ваш компьютер недостаточно быстр для +рендеринга всех кадров. + + + + + + +VESA - вывод в VESA BIOS + + +Этот драйвер был разработатн и представлен как универсальный +драйвер для любых карт с VESA VBE 2.0 совместимым BIOS. +Другое преимущество этого драйвера заключается в том ,что он пытается принудительно +включить TV вывод. +VESA BIOS EXTENSION (VBE) Версия 3.0 Дата: 16 сентября, 1998 +(Страница 70) гласит: + + +
+Dual-Controller Designs + +VBE 3.0 поддерживает дизайн с двумя контроллерами, предполагая, что поскольку +оба контроллера обычно имеют одного производителя, и управляются единственной +BIOS ROM на той же карте, то возможно скрыть от приложения факт наличия на самом +деле двух контроллеров. Это ограничивает их независимое одновременное использование, +но позволяет приложеням, выпущенным до VBE 3.0 +нормально работать. VBE функция 00h (Вернуть информацию о контроллере) возвращает +комбинированную информацию двух контроллеров, включая объединенный список +доступных режимов. Когда приложение выбирает режим, активируется соответствующий +контроллер. Каждая из остальных VBE функций затем работает с активным +контроллером. + + +
+ + +Так что у вас ест шанс получить работающий TV выход, используя этот драйвер. +(Предполагается, что TV-выход - отдельный контроллер[standalone head] или +отдельный выход как минимум.) + + + +ПРЕИМУЩЕСТВА + + У вас есть шанс смотреть фильмы, даже если Linux + не знает ваше видео оборудование. + + + Вам не требуется устанавливать в Linux ничего, относящегося к графике + (вроде X11 (он же XFree86), fbdev и т.п.). Этот драйвер может запускаться + из текстового режима. + + + У вас есть шанс получить работающий TV-выход. + (Это известно как минимум для ATI карт). + + + Этот драйвер вызывает обработчик int 10h, так что это + не эмуляция - он вызывает реальные + вещи реального BIOS в реальном режиме + (на самом деле vm86 режим). + + + С ним вы можете использовать VIDIX, получая ускоренное отображение видео, + и TV вывод одновременно! + (Рекомендуется для ATI карт.) + + + Если у вас есть VESA VBE 3.0+, и вы где-то указали + + (в файле конфигурации или в командной строке), то получите наибольшую возможную + частоту обновления. (Используя General Timing Formula). Чтобы задействовать + эту возможность, вы должны указать все опции + вашего монитора. + + + + +НЕДОСТАТКИ + + Это работает только на x86 системах. + + + Может использваться только пользователем root. + + + В данный момент доступно только для Linux. + + + + + +Не используйте этот драйвер с GCC 2.96! +Он не будет работать! + + + + +ОПЦИИ КОМАНДНОЙ СТРОКИ, ДОСТУПНЫЕ ДЛЯ VESA + + + + данный момент распознаются: dga для включения режима dga + и nodga для его отключения. В dga режиме вы можете включить + двойную буферизацию опцией . Замечание: вы можете + опустить эти параметры для автоопределения + режтма dga. + + + + + +ИЗВЕСТНЫЕ ПРОБЛЕМЫ И СПОСОБЫ ИХ РЕШЕНИЯ + + Если вы установили NLS шрифт на вашем + Linux и запускаете VESA драйвер из текстового режима, то после завершения + MPlayer у вас окажется загруженным + ROM шрифт вместо национального. + Вы можете загрузить национальный шрифт снова, воспользовавшись утилитой + setsysfont из дистрибутива Mandrake/Mandriva, например. + (Подсказка: Та же утилита используется для + локализации fbdev). + + + Некоторые графические драйверы Linux не обновляют + активный BIOS режим в DOS памяти. + Таким образом, если у вас подобная проблема - всегда используете VESA драйвер + только из текстового режима. Иначе в любом случае будет + активирован текстовый режим (#03) и вам придется перезагружать компьютер.. + + + Часто после завершения работы VESA драйвера вы получаете + черный экран. Чтобы вернуться в обычный режим + просто переключитесь на другую консоль + (нажав Alt+F<x>) затем переключитесь + обратно тем же способом. + + + Для получения работающего TV выхода необходимо, + чтобы TV разъем был подключен до включения вашего PC, т.к. видео BIOS + инициализирует себя только один раз во время POST процедуры. + + +
+ + + +X11 + + +Избегайте, если возможно. Вывод в X11 (используя расширение разделяемой памяти) - +без какого-либо ускорения.Поддерживается (MMX/3DNow/SSE ускоренное, но все равно +медленное) программное масштабирование, используйте опции . +Большинство карт имеют поддержку масштабирования, для этого используйте вывод +, или для карт Matrox. + + + +Проблема в том, что большинство драйверов карт не поддерживают аппаратное +ускорение на втором мониторе/TV. В этом случае вы увидите окно зеленого/синего +цвета вместо изображения, и этот драйвер будет полезным, +но требуется мощный CPU для программного масштабирования. Не используйте +програмный вывод+масштабирование SDL драйвера, он имеет худшее качество +картинки! + + + +Программное масштабирование очень медленное, лучше попробуйте вместо этого +изменить видео режим. Это очень просто. Смотрите раздел DGA +режимы и вставьте соотвествующие строки в ваш XF86Config. + + + + Если у вас XFree86 4.x.x: используйте опцию. Она + переключится в режим с подходящим разрешением. Если нет: + + + C XFree86 3.x.x: циклически переключайтесь между разными разрешениями с помощью + клавиш + Ctrl+Alt+плюч + and + Ctrl+Alt+минус. + + + + + +Если не находите вставленные видео режимамы, просмотрите вывод Xfree86. +Некоторые драйверы не могут использовать низкие частоты пикселизации (количество +отрисовываемых пикселей в секунду), необходимые для видео режимов с низким разрешением. + + + + + +VIDIX + + +ПРЕАМБУЛА + +VIDIX - это аббревиатура для VIDeo +Interface for *niX +(Вмдео интерфейс для Unix). +VIDIX разработан и введен как интерфейс для быстрых драйверов пространства +пользователя[user-space], обеспечивающих такую же производительность, как mga_vid +для карт Matrox. Они к тому же хорошо переносимы. + + + +Этот интерфейс был разработан, чтобы уместить существующие интерфейсы ускорения видео +(известные как mga_vid, rage128_vid, radeon_vid, pm3_vid) в единую схему. +Он предоставляет высокоуровневый интерфейс к чипам, известным как +BES (BackEnd scalers) или OV (Video Overlays). Он не предоставляет низкоуровневого интерфейса +к вещам, известным как графические серверы (Я не хочу соревноваться с командой X11 +в переключении режимов.) Т.е. основная цель интерфейса - ускорить до максимума +скорость воспроизведения видео. + + + +ИСПОЛЬЗОВАНИЕ + + Вы можете использовать отдельный видеодрайвер: . + Этот драйвер был разработан как X11 фронтенд к VIDIX технологии. Он + требует X сервер и может работать только под ним. Имейте ввиду, что + поскольку этот драйвер напрямую обращается к оборудованию в обход драйвера X, + то могут быть повреждены растровые изображения, кешированные в памяти + видеокарты. + Вы можете предотвратить это, ограничив размер видеопамяти, используемой X, + XF86Config опцией "VideoRam" в разделе устройств. Вам следует установить этот + параметр в количество установленной видеопамяти минус 4Мб. Если у вас меньше + 8Мб видеопамяти, вместо этого можно использовать опцию "XaaNoPixmapCache" в + разделе экранов. + + + Существует консольный VIDIX драйвер: . + Для большинства карт требуется работающий и инициализированный фреймбуфер + (в противном случае просто испортите изображение на экране), + и вы будете иметь тот же эффект, что и с или + . Карты nVidia, тем не менее, способны выводить + полностью графическое видео в настоящей текстовой консоли. Смотрите раздел + nvidia_vid для более подробной информации. + + + Вы можете использовать подустройство VIDIX, примененное к различным + драйверам видео вывода, например: + (только Linux) и + . + + + + +Это действительно неважно, какой драйвер вывода видео используется с +VIDIX. + + + +ТРЕБОВАНИЯ + + Видеокарта должна находиться в графическом режиме (кроме карт nVidia с + драйвером ). + + + Драйвер вывода видео MPlayer должен знать + текущий видеорежим и быть способным сообщить VIDIX некоторые видео характеристики сервера. + + + + +СПОСОБЫ ИСПОЛЬЗОВАНИЯ + +Когда VIDIX используется в качестве подустройства (), настройка видеорежима производится драйвером вывода видео +(короче говоря vo_server). Следовательно, вы можете +передать в командную строку MPlayer те же ключи, что и для +vo_server. Дополнительно он понимает ключ +как глобально видимый параметр. (Я рекомендую использовать этот ключ с VIDIX как минимум +для карт ATI). дополнительно понимает следующие опции: +. + + + +Вы можете напрямую указать VIDIX драйвер третьим параметром к командной строке +: + +mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi +или +mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi + +Но это опасно, и вам не следует этого делать. В этом случае принудительно +запускается указанный драйвер и результат может быть непредсказуемым +(он может подвесить ваш компьютер). +Вам следует это делать ТОЛЬКО если вы абсолютно уверены, что он работает и +MPlayer не использует его автоматически. +Пожалуйста, сообщите об этом разработчикам. Правильный путь - использование +VIDIX без аргументов для задействования автоопределения драйвера. + + + +Поскольку VIDIX требует прямой доступ к оборудованию, вы можете либо +запускать его от имени root, либо установить SUID бит на исполняемый файл +MPlayer ((Внимание: +Это большой риск безопастности). +Как вариант, вы можете использовать специальный модуль ядра, как этот: + + + + + + Скачайте разрабатываемую версию + svgalib (например 1.9.17), ИЛИ + версию, созданную Alex специально для использования с MPlayer + (она не требует наличия исходников svgalib для компиляции) + отсюда. + + + Скомпилируйте модуль в каталоге svgalib_helper + (он может быть найден внутри каталога + svgalib-1.9.17/kernel/, если вы скачали исходники + с сайта svgalib) и выполните insmod для него. + + + Для создания необходимых устройств в каталоге /dev, + выполните от имени root команду make device в + svgalib_helper. + + + Переместите каталог svgalib_helper в + mplayer/main/libdha/svgalib_helper. + + + Требуется, если вы скачали исходники с сайта svgalib: Удалите комментарий перед строкой + CFLAGS, содержаший строку "svgalib_helper" в файле + libdha/Makefile. + + + Перекомпилируйте и установите libdha. + + + + +ATI карты + +В даный момент для большинства карт ATI, начиная от Mach64 и заканчивая последними +Radeon, имеется встроенная поддержка. + + + +Существует два скомпилрованных бинарных файла: radeon_vid для +Radeon и rage128_vid для карт Rage 128. Вы можете принудительно +использовать один из них или позволить VIDIX автоматически опробовать все доступные +драйверы. + + + + +Matrox карты + +Сообщалось, что работают Matrox G200, G400, G450 и G550. + + + + +Драйвер поддерживает видео эквалайзеры и должем быть столь же быстр, как и +Matrox фреймбуфер + + + + +Trident карты + +Существует драйвер для чипсета Trident Cyberblade/i1, который можно найти +на материнских платах VIA Epia. + + + +Драйвер написан и поддерживается +Alastair M. Robinson + + + + +3DLabs карты + +Хотя драйвер для чипов 3DLabs GLINT R3 и Permedia3 существует, никто его не +тестировал, так что отчеты приветствуются. + + + + +nVidia карты + + + Уникальная особенность драйвера nvidia_vid заключается в способности отображать + видео в простой, чисто текстовой консоли - без + какого бы то ни было фреймбуфера или магии с X. Для этой цели мы будем использовать + драйвер вывода видео , как показывет следующий пример: + mplayer -vo cvidix example.avi + + + + + +SiS карты + +Это, как и nvidia_vid, весьма экспериментальный код. + + + +Он тестровался на SiS 650/651/740 (наиболее распространный чипсет, используемый в +SiS версиях байрбонов[barebones] "Shuttle XPC") + + + +Отчеты ожидаются! + + + + + +DirectFB +
+"DirectFB - это графическая библиотека, которая была разработана с учетом +особенностей встроенных систем. Она предоставляет максимум производительности +при минимуме используемых ресурсов и накладных расходов." - +процитировано с +
+ +Я исключу описание возможностей DirectFB из этого раздела. + + +Несмотря на то, что MPlayer не поддерживается в DirectFB +как "video провайдер", этот драйвер вывода видео задействует воспроизведение +видео через DirectFB. Он будет - конечно - работать с ускорением, на моей Matrox G400 +скорость DirectFB такая же как у XVideo. + + + +Всегда старайтесь использовать последнюю версию DirectFB. Вы можете использовать опции +DirectFB в командной строке, при помощи . Выбор слоя +производится методом подустройства, например.: +(по-умолчанию -1: автоопределение) + +
+ + +DirectFB/Matrox (dfbmga) + +Прочтите основной DirectFB раздел для общей информации. + + + +Этот драйвер вывода видео задействует CRTC2 (на втором мониторе[second head]) на картах +Matrox G400/G450/G550, отображающий видео +независимо от первого монитора[first head]. + + + +Ville Syrjala имеет +README +и +HOWTO +на своей странице, описывающие как задейстовать вывод DirectFB TV на картах Matrox. + + + +Первая версия DirectFB, на которой удалось это сделать, была +0.9.17 (имеющая ошибки, требует surfacemanager +патч с указанного выше URL). Портирование кода CRTC2 в +mga_vid планируется уже несколько лет, +патчи приветствуются. + + +
+ + +MPEG декодеры + + +DVB ввод и вывод + +MPlayer поддерживает карты с чипсетом Siemens DVB и +таких производителей, как Siemens, Technotrend, Galaxis или Hauppauge. +Последние DVB драйверы доступны с сайта Linux TV. +Если вы собираетесь делать программное транскодирование, у вас должен быть как минимум 1ГГц CPU. + + + +Скрипт configure должен определить вашу DVB карту. Если нет, принудительно укажите +определение с помошью + + +./configure --enable-dvb + +Если заголовочные файлы ost находятся не в стандартных каталогах, укажите путь с + +./configure --with-extraincdir=каталог исходников DVB/ost/include + + +Затем компилируйте и устанавливайте как обычно. + + +ИСПОЛЬЗОВАНИЕ + +Аппаратное декодирование (воспроизведение стандартных MPEG-1/2 файлов) может быть выполнено +следующей командой: + + + + +mplayer -ao mpegpes -vo mpegpes file.mpg|vob + + + +Программное декодирование или транскодирование различных форматов в MPEG-1 производится, +используя команду: + + +mplayer -ao mpegpes -vo mpegpes yourfile.ext +mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext + + + +Имейте в виду, что DVB карты поддерживают высоту изображения только 288 и 576 для PAL и +240 и 480 для NTSC. Для других значений высоты вы должны +отмасштабировать изображение, добавив к опции + с желаемыми значениями ширины и высоты. +DVB карты допускают различные значения ширины: 720, 704, 640, 512, 480, 352 и т.д. и +производят аппаратное масштабирование по горизонтали, так что в большинстве случаев +масштабировать по горизонтали не нужно. Для 512x384 (пропорции 4:3) MPEG-4 (DivX) +по