Der VDR selbst konzentriert sich auf die Kernfunktionen DVB-Empfang, das Aufzeichnen von Sendungen und eine rudimentäre EPG-Verwaltung. Zusätzliche Funktionen werden über Plugins realisiert. Eine gute Übersicht welche Plugins existieren und ob sie mit den unter yaVDR verwendeten VDR-Versionen kompatibel sind, bietet die Seite Plugins im VDR-Wiki. Die meisten kompatiblen Plugins sind in den yaVDR-Paketquellen zu finden und können bei Bedarf einfach über das Webfrontend oder die Shell nachinstalliert werden.
Das Streamdev Plugin erlaubt es dem VDR Live-TV an andere VDRs (über das Streamdev-Client Plugin) oder beliebige Clients via HTTP zu streamen. Es teilt sich in Streamdev-Server und Streamdev-Client auf.
Das Streamdev-Server Plugin (Paketname vdr-plugin-streamdev-server) ist bei yaVDR 0.6 vorinstalliert. Es erweitert den VDR um die Fähigkeit Live-TV übers Netzwerk zu streamen.
Zugriff von anderen Rechnern aus | |
---|---|
In der Voreinstellung nach der Installation erlaubt das Plugin nur Zugriffe vom gleichen Rechner. Um anderen Clients den Zugriff (und die Steuerung wichtiger Funktionen per SVDRP) zu erlauben müssen wie im folgenden beschrieben zwei Konfigurationsdateien angepasst werden |
Für den Zugriff über SVDRP (z.B. wenn ein anderer VDR mit Streamdev-Client Plugin zugreifen können soll) muss die Datei /etc/vdr/svdrphosts.conf wie unter SVDRP beschrieben angepasst werden.
Für den Zugriff auf die von Streamdev-Server bereitgestellten Transportströme muss außerdem die Datei /etv/vdr/plugins/streamdevhosts.conf angepasst werden. Diese Datei ist unter yaVDR 0.6 getemplated.
Beispieleinträge für /etc/vdr/plugins/streamdevhosts.conf (bzw. das Ziel des symbolischen Links /var/lib/vdr/plugins/streamdev-server/streamdevhosts.conf).
127.0.0.1 192.168.1.115 192.168.1.0/24 192.168.0.0/16 0.0.0.0/0
Dieser Eintrag darf nicht entfernt werden, da sonst der VDR mit bestimmten Plugins nicht mehr richtig funktioniert! | |
Erlaubt dem Rechner mit der IP 192.168.1.115 den Zugriff | |
Erlaubt allen Rechnern, mit der IP 192.168.1.xxx den Zugriff | |
Erlaubt allen Rechnern in einem Class C Netzwerk (also mit IP 192.168.xxx.xxx, Standardeinstellung in yaVDR 0.6) den Zugriff auf den Streamdev-Server. | |
Erlaubt allen Rechnern unabhängig von ihrer IP den Zugriff (Achtung: Nicht empfohlen, da damit ein ungeschützter Zugriff auf die Kanäle des VDR von außerhalb des eigenen Netzwerks möglich ist, falls der VDR nicht durch einen Router mit NAT oder eine Firewall gesichert ist!) |
Der Streamdev-Server stellt auf Port 3000 eine Webinterface mit Links zu den von ihm angeboteten Streams bereit. Unter http://<IP_des_VDR>:3000/channels.m3u kann man eine Playlist mit allen Sendern herunterladen. Ein geeigneter Stream-Client ist z.B. der VLC Media Player.
Radio-Sender streamen | |
---|---|
Möchte man Radio-Sender streamen, sollte man als Übertragungsformat "ES" [30] wählen. Ein Beispiellink zum Stream sieht dann z.B. so aus: http://<IP_DES_VDR>:3000/ES/C-1-1093-28457A |
extremux.sh | |
---|---|
Um die externremux.sh nutzen zu können, muss das Paket mencoder nachinstalliert werden. Eine Beispieldatei ist bereits unter /var/lib/vdr/plugins/streamdev-server/externremux.sh zu finden. |
Das Streamdev-Client Plugin (Paketname: vdr-plugin-streamdev-client) erlaubt einem VDR auf das Streamdev-Server Plugin eines anderen VDR zuzugreifen und somit dessen DVB-Karten zu nutzen. Damit das klappt, müssen die gewünschten Kanäle aus der channels.conf des Servers in die channels.conf auf den Client kopiert werden und auf Server und Client die Verbindungseinstellungen angepasst werden. Es kann über eine Instanz des Streamdev-Clients immer nur ein Transponder übertragen werden.
Standardmäßig dürfen alle Clients in Class-C Netzwerken (IP-Bereich 192.168.xxx.xxx) auf den Streamdev-Server zugreifen. Falls man den Zugriff genauer steuern oder auf andere Adressbereiche erweitern möchte, muss man dies in der /etc/vdr/plugins/streamdev-server/streamdevhosts.conf entsprechend konfigurieren (siehe oben).
Das xvdr-Plugin erlaubt die Anbindung des VDR an KODI über das XVDR-PVR Addon aus dem Paket xbmc-addon-xvdr. Der Funktionsumfang umfasst aktuell Live-TV, EPG-Darstellung, das Verwalten von Timern sowie Zugriff auf die Aufnahmen des VDR. Einige Funktionen wie die Möglichkeit Schnittmarken zu benutzen und Aufnahmen zu schneiden sowie Einstellungen des VDR aus KODI heraus zu verändern sind aktuell nicht vorhanden. Das xvdr-Plugin ist multiuserfähig, d.h. es können mehrere KODI-Clients gleichzeitig auf einen VDR zugreifen und dessen Tuner und Aufnahmen nutzen.
Die Zugriffsberechtigungen für Clients werden in der /var/lib/vdr/plugins/xvdr/allowed_hosts.conf eingestellt. Die Syntax dieser Konfigurationsdatei entspricht der der svdrphosts.conf:
Zugriff von anderen Rechnern | |
---|---|
Für den Zugriff von anderen Rechnern aus muss ggf. die Datei /var/lib/vdr/plugins/xvdr/allowed_hosts.conf angepasst werden. Einige Beispiele sind im folgenden aufgeführt: |
Beispieleinträge für /var/lib/vdr/plugins/xvdr/allowed_hosts.conf.
127.0.0.1 192.168.1.115 192.168.1.0/24 192.168.1.0/16 0.0.0.0/0
Dieser Eintrag sollte nicht entfernt werden, da sonst der lokale Zugriff von KODI aus auf den VDR nicht mehr funktioniert! | |
Erlaubt dem Rechner mit der IP 192.168.1.115 den Zugriff | |
Erlaubt allen Rechnern, deren IP mit 192.168.1. beginnt den Zugriff | |
Erlaubt allen Rechnern, deren IP mit 192.168. beginnt den Zugriff (entspricht Class C Subnetzen) | |
Erlaubt allen Rechnern unabhängig von ihrer IP den Zugriff (Achtung: damit ist ein ungeschützter Zugriff auf den VDR von außerhalb des eigenen Netzwerks möglich, falls der VDR nicht durch einen Router mit NAT [31] oder eine Firewall gesichert ist!) |
Das vnsiserver-Plugin erlaubt die Anbindung des VDR an KODI über das vnsiserver-PVR Addon aus dem Paket kodi-pvr-vdr-vnsi. Der Funktionsumfang umfasst aktuell Live-TV, EPG-Darstellung, das Verwalten von Timern sowie Zugriff auf die Aufnahmen des VDR. Einige Funktionen wie die Möglichkeit Schnittmarken zu benutzen und Aufnahmen zu schneiden sowie Einstellungen des VDR aus KODI heraus zu verändern sind aktuell nicht vorhanden. Das vnsiserver-Plugin ist multiuserfähig, d.h. es können mehrere KODI-Clients gleichzeitig auf einen VDR zugreifen und dessen Tuner und Aufnahmen nutzen.
Die Zugriffsberechtigungen für Clients werden in der /var/lib/vdr/plugins/vnsiserver/allowed_hosts.conf eingestellt. Die Syntax dieser Konfigurationsdatei entspricht der der svdrphosts.conf:
Zugriff von anderen Rechnern | |
---|---|
Für den Zugriff von anderen Rechnern aus muss ggf. die Datei /var/lib/vdr/plugins/vnsiserver/allowed_hosts.conf angepasst werden. Einige Beispiele sind im folgenden aufgeführt: |
Beispieleinträge für /var/lib/vdr/plugins/vnsiserver/allowed_hosts.conf.
127.0.0.1 192.168.1.115 192.168.1.0/24 192.168.1.0/16 0.0.0.0/0
Dieser Eintrag sollte nicht entfernt werden, da sonst der lokale Zugriff von KODI aus auf den VDR nicht mehr funktioniert! | |
Erlaubt dem Rechner mit der IP 192.168.1.115 den Zugriff | |
Erlaubt allen Rechnern, deren IP mit 192.168.1. beginnt den Zugriff | |
Erlaubt allen Rechnern, deren IP mit 192.168. beginnt den Zugriff (entspricht Class C Subnetzen) | |
Erlaubt allen Rechnern unabhängig von ihrer IP den Zugriff (Achtung: damit ist ein ungeschützter Zugriff auf den VDR von außerhalb des eigenen Netzwerks möglich, falls der VDR nicht durch einen Router mit NAT [32] oder eine Firewall gesichert ist!) |
Das Programm dfatmo und das dazugehörige Plugin für den VDR können über die Pakete dfatmo und libxine-dfatmo-plugin installiert werden.[33]
Um das Plugin nutzen zu können, müssen die Start-Argumente von xine bzw. vdr-sxfe in der Konfigurationsdatei /etc/init/vdr-frontend.conf angepasst werden. Diese Datei ist getemplated und sollte daher nicht direkt bearbeitet werden. Stattdessen muss der für das jeweilige Frontend passende Template-Teil (20_xineliboutput für vdr-sxfe und 25_xine für xine) aus /usr/share/yavdr/templates/etc/init/vdr-frontend.conf/ nach /etc/yavdr/templates_custom/etc/init/vdr-frontend.conf/ kopiert und die Variable XINELIBOUTPUTOPTS bzw. XINEOPTS darin entsprechend angepasst werden. Zum Schluss wird die Konfigurationsdatei neu aus den Templates erzeugt.
Im Folgenden ist das ganze Schritt für Schritt beschrieben:
sudo mkdir -p /etc/yavdr/templates_custom/etc/init/vdr-frontend.conf/ sudo cp /usr/share/yavdr/templates/etc/init/vdr-frontend.conf/2* /etc/yavdr/templates_custom/etc/init/vdr-frontend.conf/
In den Dateien die Variable XINE(LIBOUTPUT)OPTS erweitern:
XINELIBOUTPUTOPTS="--post tvtime:method=use_vo_driver --reconnect --audio=alsa --syslog --silent --tcp" XINELIBOUTPUTOPTS="$XINELIBOUTPUTOPTS --post=dfatmo:driver=serial,driver_param=/dev/ttyUSB0,top=1,bottom=1,left=1,right=1,brightness=150,analyze_size=0,overscan=0,enabled=1"
bzw.
XINEOPTS="-G $GEOMETRY -A alsa --config /etc/xine/config --keymap=file:/etc/xine/keymap --post vdr --post vdr_video --post vdr_audio --verbose=2 --no-gui --no-logo --no-splash --deinterlace -pq" XINEOPTS="$XINEOPTS --post=dfatmo:driver=serial,driver_param=/dev/ttyUSB0,top=1,bottom=1,left=1,right=1,brightness=150,analyze_size=0,overscan=0,enabled=1"
Die Konfigurationsdatei aus den Templates neu erstellen:
process-template /etc/init/vdr-frontend.conf
Und zuletzt Openbox neu starten:
sudo stop openbox sudo start openbox
Um das Atmolight per Fernbedienung schalten zu können, wurde die Taste KEY_BRIGHTNESS_CYCLE reserviert. Damit vdr-sxfe auf die Taste reagieren kann, muss es zwischen Eventlircd und VDR auf Tastendrücke lauschen. Die Variable XINELIBOUTPUTOPTS muss dann noch um die Hotkey-Unterstützung und den Socket von Eventlircd erweitert werden:
--hotkeys --lirc=/var/run/lirc/lircd
In der /etc/init/vdr.conf muss das Start-Argument --lircd=$LIRC entfernt werden.
yaVDR 0.6 bringt das neu entwickelte RestfulAPI-Plugin mit, das als Alternative (oder Ergänzung) zu SVDRP konzipiert ist. Es setzt nicht mehr auf direkte TCP Kommunikation sondern erlaubt die Interaktion mit dem VDR über HTTP-Anfragen. Die Antworten des VDR werden in den Formaten HTML, XML oder JSON ausgeliefert.
Vorteile:
Nachteile:
Die API des Plugins kann man unter folgender Webadresse einsehen: http://<IP des VDR>:8002/info.html
Dieses Plugin erlaubt es DVB-Geräte dynamisch in den VDR einzubinden und wieder zu entfernen, ohne dass ein Neustart des VDR notwendig ist. Somit kann der VDR schneller starten, ohne z.B. auf "langsame" USB-TV-Karten zu warten. Sobald diese Initialisiert sind, werden sie basierend auf udev-Regeln nachträglich eingebunden und können genutzt werden. Für die Zukunft ist ein optionales automatisches Abschalten von gerade nicht benötigten DVB-Karten geplant um Strom zu sparen und die Lebensdauer der Komponenten zu verlängern.
Ausführliche Informationen zum Plugin findet man in der beiliegenden README-Datei.
Das avahi4vdr Plugin erlaubt es avahi-Announcements bei laufendem VDR vorzunehmen. In der Voreinstellung werden der SVDRP-Port, das live-Plugin, streamdev-server und restfulapi angekündigt. Die vom Plugin angekündigten Dienste können in der getemplateten Konfigurationsdatei /var/lib/vdr/plugins/avahi4vdr/services.conf festgelegt werden.
epg2vdr ermöglicht es das über DVB verbreitete Sender-EPG mit externen EPG-Quellen (es wird ein Plugin zur Nutzung der kostenpflichtigen Daten von http://www.epgdata.com wird im Quellcode mitgeliefert, Plugins für andere Quellen sind auch möglich) zu mischen und über die Episodenlisten von http://eplists.constabel.net/ mit Informationen zu Staffel- und Folgennummern anzureichern, was z.B. für Suchtimer mit epgsearch hilfreiche Zusatzmerkmale liefert. Da es eine zentrale Datenbank nutzt, eignet es sich auch gut, wenn mehrere VDRs zum Einsatz kommen.
Um das Plugin nutzen zu können, bedarf es weiterer Komponenten:
Auf dem Rechner, der die Datenbank bereitstellen soll, werden die Pakete mysql-server und vdr-epg-daemon installiert.
Hinweis | |
---|---|
Falls gewünscht können der vdr-epg-daemon und MySQL (bzw. MariaDB) auch auf getrennten Rechnern installiert werden. In diesem Fall muss das MySQL-Plugin epglv für den Rechner mit der MySQL-Datenbank gebaut und mit dieser gemäß der README bekannt gemacht werden. |
Die initiale Konfiguration von MySQL bzw. MariaDB kann so erfolgen:
$ sudo apt-get install mysql-server $ sudo apt-get install vdr-epg-daemon $ sudo sed -i 's/^bind-address/# bind-address/' /etc/mysql/my.cnf $ sudo sed -i 's/^log_bin/# log_bin/' /etc/mysql/my.cnf # optional, verbessert die Performance, verschlechtert Wiederherstellbarkeit der Daten $ sudo mysql -u root -p mysql> CREATE DATABASE epg2vdr charset utf8; # Datenbank anlegen mysql> CREATE USER 'epg2vdr'@'%' IDENTIFIED BY 'epg'; # Nutzer anlegen, Passwort ist "epg" mysql> GRANT ALL PRIVILEGES ON epg2vdr.* TO 'epg2vdr'@'%'; # Zugriff übers Netzwerk erlauben mysql> GRANT ALL PRIVILEGES ON epg2vdr.* TO 'epg2vdr'@'localhost' IDENTIFIED BY 'epg'; # Zugriff vom lokalen System aus zulassen mysql> FLUSH PRIVILEGES; # Änderungen an Berechtigungen übernehmen mysql> USE epg2vdr; # in Datenbank wechseln mysql> DROP FUNCTION IF EXISTS epglv; # falls vorhanden alte Funktion entfernen mysql> DROP FUNCTION IF EXISTS epglvr; # dito mysql> CREATE FUNCTION epglv RETURNS INT SONAME 'mysqlepglv.so'; # Funktion aus externem Plugin hinzufügen mysql> CREATE FUNCTION epglvr RETURNS INT SONAME 'mysqlepglv.so'; # Funktion aus externem Plugin hinzufügen # mysql mit STRG+D verlassen, dann MySQL-Server neu starten: $ sudo service mysql restart
Die weitere Konfiguration erfolgt gemäß der README. Wichtig ist die Konfigurationsdateien im Verzeichnis /etc/epgd/ auf die eigene Konfiguration anzupassen, insbesondere die Dateien channelmap.conf und die epgd.conf
Nach der Konfiguration kann epgd gestartet werden:
sudo start epgd
Auf den Clients wird das Paket vdr-plugin-epg2vdr und falls gewünscht auch vdr-plugin-scraper2vdr installiert. Dann wird der VDR gestoppt und die Datei /var/cache/vdr/epg.data gelöscht. Nach dem erneuten Start des VDR muss jetzt noch im Plugin-Setup die Adresse und die Zugangsdaten für den MySQL-Server eingetragen und der VDR abermals neu gestartet werden.
epg2vdr setzt auf eine Server-Client Struktur und benötigt eine (recht ressourcenhungrige) MySQL-Datenbank, kann dafür aber mehrere VDRs mit EPG-Informationen versorgen. Neben dem Import von EPG-Daten und Bildern für die Sendungen ermöglicht es auch das Herunterladen von Metadaten aus der TVDB und MovieDB für Sendungen und bestehende Aufnahmen, die dann vom scrapber2vdr-Plugin am VDR genutzt werden können. Die Konfiguration erfolgt mit Ausnahme des epg2vdr-Plugins (das sich über das OSD konfigurieren lässt) über Textdateien und in der Shell.
xmltv2vdr nutzt dagegen eine lokale sqlite-Datenbank, die nur einen Client zulässt. Somit muss jeder einzelne VDR den kompletten Datensatzt selbst pflegen. Die komplette Konfiguration (Zuordnung der Sender, Update-Intervalle usw.) erfolgt über das OSD des VDR.
Beide Lösungen ermöglichen die Nutzung der Episodenlisten von http://eplists.constabel.net/ um das EPG für dort erfasste Serien mit Staffel- und Episodeninformationen anzureichern.