Xine-plugin
Материал из RuVDRWiki
Содержание |
Описание
Автор: Reinhard Nissl
Описание: VDR-Xine предназначен для использования VDR с бюджетными картами. В обычном случае необходима хотябы одна карта с MPEG2-декодером (DXR3-карта или FF-карта), где бюджетные DVB-карты используются как дополнение, для записи на жесткий диск (например нескольких каналов одновременно с разных транспондеров или спутников).
С плагином Xine возможно использование только одной бюджетной DVB карты в VDR имеющем в обязателном порядке более быстрый процессор, чем в системах с FF-картами, так как бюджетные карты не имеют встроенного MPEG2 декодера.
Как альтернатива имеется также Softdevice-plugin.
Изображения
Требования к железу
сдесь отображены толко несколько примеров :
| CPU@MHz / RAM | Grafikkarte | Last | Sonstiges |
|---|---|---|---|
| PIII@550 / 512 | Matrox G550 mit vidix | подёргивается катинка при отображении OSD | |
| PIII@933 / 512 | nVidia GForce MX 5200 | ~ 50% | Xine-lib и Xine-Ui скомпилированны самостоятельно; xv; непритормаживает и с OSD; Деинтерлейсинг 70% нагрузки |
| Athlon@800 / 512 | ATI Radeon VE | подёргивается катинка при высоком разрешении | |
| PIII@700 / 256 | ATI Radeon 7000 | ~ 42% | Xine через сеть; xv; нормально отображается при @1280x1024x24, Деинтерлейсинг ~60% нагрузки |
| P4@2800 / 512 | Matrox G550 | ~ 50% | подёргивается катинка с OSD, Деинтерлейсинг размером окна |
| PII@400 / 256 | NVIDIA Geforce 4 MX 480 | XvmC катинка почти не дёргается , к сожалению нет OSD; xv: не отображается | |
| PII@400 / 196 | NVIDIA Geforce 4 MX 480 | ~ 60% | XvmC катинка почти не дёргается, Деинтерлейсинг возможен |
| Athlon@1800 / 512 | NV Gf Ti 4200 | ~ 10% | xv-воспроизведение: нормальная картинка при DVB |
| AMD64@32bit, 1800 / 512 | NV Gf 6600 (PEG) | ~ 35% | Xv, tvtime как предложено в инструкции . CPU работает на 1000 (Cool'n'Quiet). близко к идеалу |
| AMD Duron@1200 / 256 | SIS740 (TV-Out) | ~ 40% | Xv, катинка не дёргается (только слегка при переключении) |
| P4 Celeron (Northwood) 3.0GHz / 256MB | ATI Radeon 9200 | ~ 20% | "новая" Nova-T PCI, kernel 2.6.15, gxine: ruckelfrei, катинка не дёргается (только слегка при переключении) |
| AMD Athlon@1200 / 768MB | GeForce4 MX 440 | ~7% | Xvmc, OSD не просвечивается, катинка не дёргается, ~20% с присвечивающимся OSD |
| AMD64@64bit, 3400@1000 / 2GB | ATI Radeon 9600 XT | 8% | - |
| AMD X2 BE-2400, 2300@1000 / 2GB | ATI Radeon 1250 onBoard | ~15% | opengl, Cool'n'Quiet, CPU 1000 MHz при PAL-сигнале. у HD CPU с 2300 MHz и ~60% нагрузки. |
| P4 3,14 GHz / 2 GB | NVIDIA GeForce 7800 GS | ~7% | с Деинтерлейсингом, при активном OSD ~25% нагрузки |
| Pentium M 1,7 GHz / 2 GB | GeForce FX 5200 | ~3% | XvMC с HW-BOB Деинтерлейсингом , при активном OSD ~8% нагрузки |
| VIA C3 Nehemiah 1 GHz | VIA CLE266 + interner MPG-2-Dek. | ~15% | XvMC через X11 и Xine-плагин: идеально |
| E4300@1,8GHz / 1GB | GeForce 8400 GS | ~3% | Linux 2.6.23 x86-64 (почти без дополнительных модулей) -> через X11 (xorg) и Xine-плагин: на 1080i (HDMI) -> жеский диск монтирован на сервере |
Требования к программному обеспечению
- xine-{lib,ui}, где наличие Xine-ui не совем обязательно, в нормальонм случае, каждый Frontend, стояший на Xine-lib, должен работать. (другие Frontends в этот момент не станут поддерживать --enable-vdr-keys , ./configure --help знает существенно больше)
- альтернативно к xine-ui, можно применить oxine как Frontend.
Установка плагина
## зогрузка Source
cd $SOURCEDIR
wget http://home.vr-web.de/~rnissl/xine-lib-cvs-<VERSION>.tar.bz2
wget http://home.vr-web.de/~rnissl/xine-ui-cvs-<VERSION>.tar.bz2
wget http://home.vr-web.de/~rnissl/vdr-xine-<VERSION>.tgz
## распаковка Source
tar xvzf vdr-xine-<VERSION>.tgz -C $(pwd)/VDR/PLUGINS/src
tar jxvf xine-lib-cvs-<VERSION>.tar.bz2
tar jxvf xine-ui-cvs-<VERSION>.tar.bz2
## установка линка Symlinks
cd VDR/PLUGINS/src
ln -s xine-<VERSION> xine
## копирование "loops"
cd xine
mkdir -p /etc/vdr/plugins/xine
find . -name *.mpg -exec cp -v \{} /etc/vdr/plugins/xine \;
## линк для Player
ln -vs $(pwd)/xineplayer /usr/local/bin/xineplayer
## перевод xine-lib
cd ../../../../xine-lib
find $SOURCEDIR/VDR/ -name xine-lib.patch -exec patch -p1 -i \{} \;
./autogen.sh --prefix=/usr/local
make
make install
ldconfig
## перевод frontends
cd ../xine-ui
find $SOURCEDIR/VDR/ -name xine-ui.patch -exec patch -p1 -i \{} \;
./autogen.sh --prefix=/usr/local \
--enable-vdr-keys
make
make install
Для 64-битных процессоров напимер AMD64 , надо изменить Makefile
- #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual + #CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual -fPIC
после этого перевести , как обычно:
cd $SOURCEDIR/VDR make clean make <OPTIONEN> all plugins
после запуска runvdr для X основанных :
xine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
обойти все сообщения, можно также "minimal" через Framebuffer:
fbxine "vdr:/tmp/vdr-xine/stream#demux:mpeg_pes"
через сеть это называется:
xine "netvdr://host:port#demux:mpeg_pes"
(:порт при этом любой) при этом надо стартовать плагин с дополнительным параметром "-p" (смотри инструкцию), поэтому:
-P 'xine -r -p'
Опции
| VDR_XINE_SET_VIDEO_WINDOW=1 | für volle yaepg-plugin Unterstützung aktivieren |
Конфигурация
В актуальной версии плагина находится плэйер, который может воспроизводить и другие форматы.
cp $SOURCEDIR/VDR/PLUGINS/src/mp3/examples/mplayer.sh.example /usr/local/bin/mplayer.sh
подогнать
- MPLAYER="mplayer" + MPLAYER="/usr/local/bin/xineplayer"
можно к этому добавить, что в данной стадии это работает только с Lirc, причём только в модусе mplayer-plugin TRADITIONAL .
Параметры
Существуют следующие параметры команд:
| Параметр | Описание |
|---|---|
| -i N | instance number to append to FIFO directory |
| -q | turn off debug messages on console |
| -r | turn on remote (pressing keys in xine controls VDR) |
| -s | switch to curses skin, while xine is disconnected |
Параметры плагина могут быть переданы следующим образом.
vdr <VDR параметр> -P'xine <параметр>' <следующий VDR параметр>
Пример:
vdr -P'xine -r'
Sonstiges
Проблемы
- В принципе также и выдача OSD с XVmC возможна, в единичных случаях это приводит некоторым затруднениям, которые можно обойти с помошью некоторых установок Xine [например disable exact alpha blending и активацией xvmc_nvidia_colorfix ]
SuSE спецификация
Оригинальный Xine пакет от SuSE нужно удалить, т.к. для наших потребностей он не подходит.
echo xine-ui xine-lib xine-devel|xargs rpm -e --nodeps
в настоящей стадии плагин днлжен работать почти с каждым дистром одинаково.
С SuSe от версии 9.3 , Xine-Player уже готов к испльзованию с VDR. Только стрим не находится в /tmp/vdr-xine. Недостатком готового PRM пакета , является высокая нагрузка на процессор. На PIII@933 VDR работал только от части (дёргание картинки при ОСД). Компиляция Xine-Lib, Xine-UI и VDR, приводит к более лучшим результатам - до 40-50% меньшую нагрузку на процессор (xv в качестве видеотрайбера, NVidia GForce FX5200).
Debian Sarge
Дебиан имеет слишком старую версию automake(1.4). Её надо обновить минимум до 1.5 . Я использую 1.9 .
так что
apt-get install automake1.9
последовало от
update-alternatives --config automake
после этого должно заработать.
Советы
Mplayer
Вместо xineplayers можно использовать также mplayer (даже в SLAVE-модусе). Здесь минимальный mplayer.sh (для использовании под X11 и Slave):
#!/bin/sh CMDLINE="mplayer -fs -vo xv -ao oss -cache 4096 -slave -nolirc -quiet" DISPLAY=:0.0 $CMDLINE "$1" 2>&1 | logger exit
Старт Xine вместе с ВДР
В случае если Xine должно стартовать вместе ВДР, нужно до компилляции плагина добавить в xine.c исходные коды:
bool cPluginXine::Start(void)
{
// Start any background activities the plugin shall perform.
if (!PluginXine::cXineDevice::Open())
return false;
+ pid_t cpid;
+ switch (cpid = fork()){
+ case 0: SystemExec("xine -f --no-splash vdr:/tmp/vdr-xine/stream#demux:mpeg_pes");
+ }
return true;
}
Вырабатывание стоящей картинки
cat <BILD>.jpg \
| jpegtopnm \
| pnmscale -xsize=720 -ysize=576 \
| ppmtoppm \
| ppmtoy4m -F 25:1 -A 4:3 -I p -r -v 2 -n 1 \
| mpeg2enc -f 0 -a 2 -q 1 -n p -T 120 -R 2 -g 12 -G 12 -o <NAME>.mpg
Команда для kanotix/Debian Sid
png2yuv -j <file>.png -f 25 -I p -n 2 | mpeg2enc -f 3 -a 2 -b 7500 -o <file>.mpg
