Softdevice-plugin

Материал из RuVDRWiki

Перейти к: навигация, поиск

Содержание

Описание

Screenshot
Screenshot

Softdevice plugin это программный MPEG-2 декодер который используется VDR-ом в качестве устройства вывода. Видеовыход FF DVB карты не используется, так как вывод изображения осуществляется на монитор или TV-out графической карты. Используя его совместно с streamdev-plugin можно построить недорогую и тихую клиентскую машину.

В отличие от аппаратных декодеров MPEG всроенных в FF DVB карту, у softdevice нет проблем с декодированием HDTV (при условии, что CPU имеет достаточную производительность )


Плагин получает видеопоток, раскодирует его, масштабирует и конвертирует в формат RGB. Изображение выводится через Framebuffer одним из способов:

  • Квази-аппаратное декодирование XvMC (XVideo Motion Compensation) с небольшой нагрузкой на процессор.

Этот способ поддерживается некоторыми графическими картами NVidia (GF4MX400, а также >= GF5), S3 Unichrome (VIA Epia Boards) и, возможно, другими. ( Опция XvMC в XF86config)

  • Программное декодирование. С оверлейным выводом через Xv (XVideo).

Работает со всеми графическими картами (Опция v4l в XF86config)

  • Декодирование, масштабирование и преобразование в RGB осуществляется программно. Вывод производится через VESA framebuffer (очень сильно нагружает процессор).

Требования к оборудованию

Тут приведены примеры (пожалуйста, дополняйте):

  • PIII 600MHz, 128MB, Matrox G450: примерно 50% загрузка, без срывов
  • K6/2 450MHz, 128MB, Matrox G200: 100% загрузка, сильно дергается
  • Athlon 800 Mhz, 512MB, ATI Radeon VE, дергается
  • Athlon 1100 Mhz,512MB, Nvidia GF2MX200 :примерно 50% загрузка, без срывов

Видеокарты, умеющие брать на себя часть работы по декодированию идеальны для работы с softdevice плагином. Некоторые карты имеют аппаратную поддержку IDCT, MC и BES.

Очень жаль, что производители видеокарт очень редко дают информацию о том, как использовать эти возможности.

Единственное исключение - это карты Matrox, особенно G200, G400 и G450. Эти карты идеально работают с softdevice

Требования к Софту

  • FFMPEG

Установка

Базовая (включая поддежку FB/Xv)

FFMPEG

cd $SOURCEDIR
tar xvzf ffmpeg-<VERSION>.tar.gz
cd ffmpeg-<VERSION>
./configure --prefix=/usr/local \
            --enable-shared
make
make install
ldconfig

Для поддержки deinterlacing pp-filters в последних версиях плагина, для FFMPEG при компиляции потребуются дополнительные опции

cd $SOURCEDIR
tar xvzf ffmpeg-<VERSION>.tar.gz
cd ffmpeg-<VERSION>
./configure --enable-shared \
            --enable-pp \
            --enable-gpl
cd libavcodec/libpostproc
make
mkdir -p /usr/local/include/postproc
install -m 644 postprocess.h /usr/local/include/postproc/postprocess.h
cp libpostproc.a /usr/local/lib
cd -
make
make install
ldconfig

Поддержка DirectFB

DirectFB

cd $SOURCEDIR
tar xvzf DirectFB-<VERSION>.tar.gz
cd DirectFB-<VERSION>
./configure --help (für den passenden driver ???)
./configure --prefix=/usr/local \
            --with-gfxdrivers=???
make
make install

DFB++

cd $SOURCEDIR
tar xvzf DFB++-<VERSION>.tar.gz
cd DFB++-<VERSION>
./configure --prefix=/usr/local
make
make install

Поддержка Vidix

Vidix

cd $SOURCEDIR
tar xvzf vidix-cvs.tar.gz
cd vidix
./configure --prefix=/usr/local
make
make install
ldconfig

Смотрите установка плагина

В файле Makefile необходимо указать, какой вариант драйвера вы собираетесь использовать и где находятся необходимые библиотеки и файлы заголовков. Framebuffer как устройство должен существовать и быть доступным.

Dazu muss entweder beim Systemstart der VESA-Framebuffer aktiviert werden oder bei unterstützten Grafikkarten das entsprechende Framebuffer Modul geladen sein. Beim Kernel 2.4 und einer Matrox-Karte ist das z.B. das Modul matroxfb-base (modprobe matroxfb-base) Mit fbset wird dann eine passende Auflösung eingestellt, z.B. 768x576 bei 100Hz und 32bit Farbtiefe. Ein entsprechender Eintrag muss in der Datei /etc/fb.modes existieren.

Debian

apt-get install libavcodec-dev ffmpeg libavcodec1d libavformat-dev libfaad2-dev libxv-dev ffmpeg alsa-base libasound2-dev libdirectfb-dev libdfb++-dev

Опции

Опция Описание
XV_SUPPORT=1 XV support by Stefan Lucke
DFB_SUPPORT=1 DFB is highly experimental
FB_SUPPORT=1 FB is unaccelerated and should work with all FBs with 16bit color depth
VIDIX_SUPPORT=1 Vidix support by Vadim Catana
LIBXDPMS_SUPPORT = 1 Set this if you want to use DPMS

Конфигурирование

Параметры

Parameter (short) Parameter (long) Description
-ao alsa:devicename ALSA output device
-vo xv: X11-Xv output device
-vo xv:aspect=wide 16:9 aspect ration (1024x576)
-vo xv:aspect=normal 4:3 aspect ration (768x576)
-vo fb: Framebuffer output device
-vo dfb: DirectFB output device
-vo vidix: Vidix output device

Проблемы

CVS

cvs -z3 -d:pserver:anonymous@cvs.softdevice.berlios.de:/cvsroot/softdevice co softdevice

Ссылки

[1] http://www.k13zoo.de/vdr Plugin homepage
[2] http://www.lucke.in-berlin.de Plugin homepage (Xv)
[3] http://softdevice.berlios.de Plugin homepage
[4] http://www.mplayerhq.hu MPlayer homepage
[5] http://www.directfb.org DirectFB homepage
[6] http://www.linuxtv.org/libsoftmpeg Libsoftmpeg homepage
[7] http://vidix.sourceforge.net VIDIX is (VID)eo (I)nterface for *n(iX)
[8] http://ffmpeg.sourceforge.net FFMPEG homepage
Личные инструменты
На других языках