Raspbian VDR Streaming Client - VDR Plugins
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".