Raspbian VDR Streaming Client - VDR Plugins

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

VDR Plugins

Downloadverzeichnis für Plugins vorbereiten

mkdir /data/installfiles/vdrplugins

rpihddevice Plugin

Download

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/vdr-plugin-rpihddevice.git
tar -czf vdr-plugin-rpihddevice-git-30122014.tar.gz vdr-plugin-rpihddevice

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://projects.vdr-developer.org/git/vdr-plugin-rpihddevice.git/

Installation

cd /usr/local/src/vdr/PLUGINS/src
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-rpihddevice .
sudo ln -s vdr-plugin-rpihddevice rpihddevice
cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

Die Plugins werden in das bestehende runvdr Skript hintereinander eingefügt:

Zum Beispiel:

VDRPLUGINS="-P Plugin1 -P Plugin2 -P Plugin3"

Hier der Eintrag für das dvbhddevice Plugin:

sudo vi /usr/local/bin/runvdr
VDRPLUGINS="-P rpihddevice"

Streamdev Plugin

Download

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/vdr-plugin-streamdev.git vdr-plugin-streamdev
tar -czf vdr-plugin-streamdev-23122014.tar.gz vdr-plugin-streamdev/

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://projects.vdr-developer.org/repositories/show/plg-streamdev

Installation

cd /usr/local/src/vdr/PLUGINS/src
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-streamdev .
sudo ln -s vdr-plugin-streamdev/ streamdev
cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P streamdev-client

System neustarten

sudo init 6

Streamdev-Client zum Streamdev-Server verbinden

Nach dem Neustart sollte das VDR OSD am TV angezeigt werden. Hierüber kann dann der Streamdev-Client konfiguriert werden.

  • VDR Menü -> Einstellungen -> Plugins -> streamdev-client ->
Gleichzeitig genutzte DVB-Karten: 1
IP der Gegenseite:                192.168.0.10
Port der Gegenseite:              2004
Filter-Daten streamen:            nein

Danach auf einen Kanal umschalten dann sollte das TV Bild sichtbar sein.

Optional: Regionalprogramme korrekt empfangen

Einige Programme verwenden dynamisch ändernde Kanalinformation (PIDs). Ein Beispiel sind die Regionalfenster des NDR. Mit der obigen Einstellung kann man diese Programme nicht korrekt empfangen - man sieht dann beim NDR zum Beispiel während der Regionalfenster nur Niedersachsen.

  • VDR Menü -> Einstellungen -> DVB ->
...
Kanäle aktualisieren:            nur PIDs
  • VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
...
Filter-Daten streamen:           ja

Bei der Aktivierung von "Filter-Daten streamen" kann es zu Pufferproblemen kommen, die im syslog wie folgt aussehen:

Jan  9 20:39:18 raspberrypi vdr: [2115] cStreamdevFilter::PutSection socket overflow, Pid   18 Tid  64

Wenn es daraufhin zu stockender live-TV Widergabe kommt dann die folgenden Filter Pufferpatches fuer den streamdev-client ausprobieren:

http://projects.vdr-developer.org/issues/2045

http://projects.vdr-developer.org/attachments/1844/vdr-plugin-streamdev-filter-patch.diff http://projects.vdr-developer.org/attachments/1853/vdr-plugin-streamdev-filter-patch2.diff

Nach compilieren des streamdev-clients mit diesen Patches gibt es im Setup Menu eine weiter Option:

  • VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
...
Filter-Daten streamen:           ja
Filter Socket Puffergröße:       0

Der Patch sollte bereits ohne Einstellung einer Puffergröße helfen, daß die Widergabe nicht stockt. Wenn nicht, dann eine Puffergröße einstellen die ausrechend ist, alle Filterdaten zu puffern.

/usr/local/bin/runvdr anpassen:

# Permit larger socket buffer sizes:
sysctl net.core.wmem_max=3072000
  • VDR Menü -> Einstellungen -> Plugins -> streamdev-clients ->
...
Filter-Daten streamen:           ja
Filter Socket Puffergröße:       3072000

svdrpservice Plugin

Das svdrpservice Plugin bietet selbst keinen Benutzerdienst an. Es ist vielmehr ein notwendiger Dienst für die Plugins epgsync und remotetimers. Im svdrpservice Plugin wird die SVDRP Verbindung zum VDR server eingestellt, die dann automatisch von den anderen Plugins verwendet wird.

Download

cd /data/installfiles/vdrplugins
wget http://vdr.schmirler.de/svdrpservice/vdr-svdrpservice-1.0.0.tgz

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://vdr.schmirler.de/svdrpservice/HISTORY

Installation

cd /usr/local/src/vdr/PLUGINS/src
sudo tar -xzf /data/installfiles/vdrplugins/vdr-svdrpservice-1.0.0.tgz
sudo ln -s svdrpservice-1.0.0 svdrpservice
cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P'svdrpservice 192.168.0.10:6419'

Hier wird die IP Adresse sowie Port von eurem VDR System angegeben.

epgsync Plugin

Download

cd /data/installfiles/vdrplugins
wget http://vdr.schmirler.de/epgsync/vdr-epgsync-1.0.1.tgz

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://vdr.schmirler.de/epgsync/HISTORY

Installation

cd /usr/local/src/vdr/PLUGINS/src
sudo tar -xzf /data/installfiles/vdrplugins/vdr-epgsync-1.0.1.tgz
sudo ln -s epgsync-1.0.1 epgsync
cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P epgsync

epgsync Plugin konfigurieren

Nach dem Neustart sollte das VDR OSD am TV angezeigt werden. Hierüber kann dann das epgsync Plugin konfiguriert werden.

  • VDR Menü -> Einstellungen -> Plugins -> epgsync ->
Server IP:                        192.168.0.10
Server Port:                      aus svdrpservice
Kanalweise synchronisieren:       ja
EPG sync beim Starten:            ja
Zeit bis zum EPG sync (h):        1
Kanäle zuordnen nach:             Name, ID
Ziel-Kanäle:                      alle

remotetimers Plugin

Das remotetimers Plugin erlaubt es auf vom RPI Client aus Aufnahmen auf dem VDR-Server aufzusetzen, anzuschauen und zu editieren. Wenn man es einfach ohne Patches aufsetzt, dann erzeugt es ein Untermenü "Server Timer", in dem die Einträge "Programm", "Timer" und "Aufzeichnungen" auf den Server zugreifen statt lokal.

Download

cd /data/installfiles/vdrplugins
wget http://vdr.schmirler.de/remotetimers/vdr-remotetimers-1.0.1.tgz
wget https://raw.githubusercontent.com/VDR4Arch/vdr4arch/master/plugins/vdr-remotetimers/remotetimers-vdr2.1.2compat.diff

Was hat sich geändert?

Auf der folgenden Webseite können die aktuellen Änderungen des Plugins eingesehen werden:

http://vdr.schmirler.de/remotetimers/HISTORY

Installation

cd /usr/local/src/vdr/PLUGINS/src
sudo tar -xzf /data/installfiles/vdrplugins/vdr-remotetimers-1.0.1.tgz
sudo ln -s remotetimers-1.0.1 remotetimers
cd remotetimers
sudo patch -p1 -i /data/installfiles/vdrplugins/remotetimers-vdr2.1.2compat.diff

Um den RPI möglichst einfach bedienbar zu machen, empfiehlt es sich die folgenden Patches vom remotetimers Plugin einzuspielen. Diese erlauben es dann durch Konfiguration im OSD dieses so aufzusetzen, daß die Hauptmenueinträge "Programm", "Timer" und "Aufzeichnungen" durch die des Plugins ersetzt werden. Dadurch wird es unmöglich gemacht, (aus Versehen) lokal auf dem SD des RPI Aufzeichnungen aufzusetzen, und der RPI VDR bedient sich fast komplett so wie ein VDR mit lokaler Aufnahme.

Zur kontrollierten Anwendung der Patches empfiehlt es sich, patch erst einmal mit dem zusätzlichen Argument "--dry-run" zu starten, die Patches anzusehen, und bei Fehlern zu schauen, wo die VDR-Quellen manuell gepatched werden müssen.

Note: HUNK1 vom MainMenuHooks patch failed gegen VDR 2.1.6 (kleine Änderungen gegenüber der VDR Version für die der Patch gemacht wurde) und muss händisch eingebaut werden.

cd /usr/local/src/vdr/
patch -p1 < PLUGINS/src/remotetimers/patches/MainMenuHooks-v1_0_2.diff
patch -p0 --dry-run < PLUGINS/src/remotetimers/patches/vdr-1.7.28-remote_instant_recordings.patch
patch -p0  < PLUGINS/src/remotetimers/patches/vdr-1.7.29-skinlcars.patch

Compilieren:

cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P remotetimers

Konfigurieren

Mit eingespielten Patches und nach Neustart des VDR empfehlen sich Einstellungen des Plugins wie folgt: Server IP: <= Muss nur im svdrpservice plugin gesetzt sein Server Port: aus svdrpservice Kanäle zuordnen anhand: Kanal-ID Hauptmenüeintrag verstecken: ja <= Wird nicht benötigt, da Hauptmenüeinträge bereits durch plugin ersetzt sind Voreinstellung für neue Timer Aufnahmeort: Server Direktaufzeichnung: Server Live-Signal anhalten: Server Benutzer-ID: 0 Einstellungen für das Menü "Programm" Hauptmenü ersetzen: ja Darstellung der Liste: Oberfläche Fortschrittsanzeige: ja .. Einstellungen für das Menü "Timer" Hauptmenü ersetzen: ja Darstellung der Liste: Oberfläche Benutzer Filter: 0 Einstellungen für das Menü "Aufzeichnungen" Hauptmenü ersetzen: ja Darstellung der Liste: Oberfläche Benutzer Filter: 0 Darstellung der Liste: Oberfläche Benutzer Filter: 0 Max Bandbreite beim Verschieben: unbegrenzt Server Aufzeichnungen: Update-Datei beobachten: ja

suspendoutput Plugin

Wenn man den RPI via streamdev zu einem zentralen VDR server verbindet, kann man schnell mehr aktive clients haben als verfügbare Tuner: Lokaler VDR auf dem Server + Aufnahmen + clients (RPI oder andere).

Wird der Fernseher des RPI nur mit dem RPI verwendet (hat also keine lokalen Tuner oder andere Medienabspieler, die alternativ verwendet werden) und hat der Fernseher auch noch 2 USB Eingänge, dann ist es ausreichend, den RPI mit einem Y-Kabel über die USB-Ports des Fernsehers mit Strom zu versorgen. Der RPI läuft dann nur wenn er benötigt wird. Diese Art der Stromversorgung kann immer sinnvoll sein (wenn möglich), aber wenn am Fernseher noch andere Quellen neben dem RPI angeschaut werden können, dann empfängt der RPI immer noch via streamdev Daten wenn er garnicht gebraucht wird und belegt unnötig einen Tuner am Server-VDR.

In diesem Fall bietet sich das suspendoutput plugin an, das bei Inaktivität den VDR suspendiert: Es wird ein Pause-Bild angezeigt und auf der streamdev-Verbindung werden keine Daten angefordert, so daß kein Tuner auf dem VDR Server belegt wird.

http://www.vdr-wiki.de/wiki/index.php/Suspendoutput-plugin

Download

Neueste Version im repository suchen. Im folgenden wird angenommen 2.0.0 ist die neueste Version (12/2014).

http://phivdr.dyndns.org/vdr/vdr-suspendoutput/?C=M;O=D
cd /data/installfiles/vdrplugins
wget http://phivdr.dyndns.org/vdr/vdr-suspendoutput/vdr-suspendoutput-2.0.0.tgz

Installation vorbereiten

cd /usr/local/src/vdr/PLUGINS/src
sudo tar -xzf /data/installfiles/vdrplugins/vdr-suspendoutput-2.0.0.tgz
sudo ln -s suspendoutput-2.0.0 suspendoutput
wget https://raw.githubusercontent.com/VDR4Arch/vdr4arch/master/plugins/vdr-suspendoutput/suspendoutput-vdr2.1.2compat.diff
patch -p1 < suspendoutput-vdr2.1.2compat.diff
wget -O vdr-plugin-suspendoutput-fix1.diff  'http://www.vdr-portal.de/index.php?page=Attachment&attachmentID=37169&h=213b7e6f8c2114d41bf41afe09764b95d523c048'
patch -p1 < vdr-plugin-suspendoutput-fix1.diff

In Versionen <= 2.0.0 sind die im suspendoutput plugin enthaltenen MPEG Standbilddateien nicht konform mit den VDR API Standards und können das rpihddevice und damit den VDR zum Absturz bringen. Die Dateien dann patchen:

ffmpeg wird benötigt:

sudo apt-get install ffmpeg
cd suspendoutput
sudo ffmpeg -i vdrlogo_720x576.mpg -f mpegts vdrlogo_720x576.pes
sudo ffmpeg -i black_720x576.mpg   -f mpegts black_720x576.pes
sudo mv vdrlogo_720x576.pes vdrlogo_720x576.mpg
sudo mv black_720x576.pes   black_720x576.mpg

Installieren

cd /usr/local/src/vdr/
sudo make plugins && sudo make install
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P suspendoutput

Optional: live plugin

Das Live-plugin bietet eine Weboberfläche an von der sich aus viele Funktionen des VDR steuern lassen. Da der Raspberry als client aufgesetzt ist, sind diese Funktionen unterschiedlich sinnvoll. Der Teil der Funktionen die auf dem RPI Client nicht sinnvoll sind sollten einfach über das Live plugin auf dem VDR Server gemacht werden.

Die Fernbedienung eignet sich sehr gut als Troubleshooting Tool und zur Ferndiagnose wenn ein Benutzer Schwierigkeiten hat. "Zeig doch mal, was Du da am VDR bedienst, ich kann Dir hier aus der Ferne zuschauen".

Das Programm und Zeitleiste sind sehr praktisch um durch die TV Programme zu browsen (ohne dafür den Bildschirm mit dem OSD des VDR zu belegen), und das Umschalten der Programme ist ebenso praktisch von der Live Webpage aus.

Das programmieren von Aufnahmen ist auf dem RPI client nicht so sinnvoll, weil diese Aufnahmen alle auf dem RPI landen und nicht auf dem Server. Ebenso sieht man in den Timer(n) nur diese lokal programmierten Aufnahmen.

Download

cd /data/installfiles/vdrplugins
git clone git://projects.vdr-developer.org/vdr-plugin-live.git
wget http://projects.vdr-developer.org/attachments/download/1854/vdr-plugin-live-patch.2.1.6.diff

Was hat sich geändert

http://live.vdr-developer.org
http://projects.vdr-developer.org/issues/2056

Installieren

sudo apt-get install libtntnet-dev libcxxtools-dev libpcre3-dev
cd /usr/local/src/vdr/PLUGINS/src
sudo cp -a /data/installfiles/vdrplugins/vdr-plugin-live .
sudo ln -s vdr-plugin-live live
cd live
sudo patch -p1 < /data/installfiles/vdrplugins/vdr-plugin-live-patch.2.1.6.diff
cd /usr/local/src/vdr/
sudo make plugins && sudo make install
cd /usr/local/src/vdr/PLUGINS/src/live
mkdir -p /usr/local/share/vdr/plugins
cp -a live /usr/local/share/vdr/plugins
sudo chown -R pi.pi /var/lib/vdr /var/cache/vdr /usr/local/share/vdr

runvdr anpassen

sudo vi /usr/local/bin/runvdr
-P live

Dann VDR restarten. In der Plugin Konfiguration kann man dann den maximal im live plugin angezeiten Kanal enstellen, und welche username/password beim Zugriff auf das Live plugin über das Web erlaubt sind. Alles andere wird über die Weboberfläche gesteuert.

=Verwenden

Um das Live plugin zu verwenden, einfach von einem Browser aus:

 http://<RPI-ip-address>:8008/

Default username ist "admin", password "live".


Linksammlung

  1. Plugins and Patches for VDR-to-VDR streaming
  2. Rpihddevice-plugin
  3. Streamdev Plugin
  4. Svdrpservice-plugin
  5. Remotetimers-plugin
  6. Epgsync-plugin