Softdevice-plugin
Материал из RuVDRWiki
Содержание |
Описание
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 |
