Inhaltsverzeichnis
Ziel
- Planung von Aufnahmen aus verschiedenen Quellen (DVB-T/S/C)
- Verteilung von Live-TV und Aufnahmen über übliche Protokolle (z.B. RTSP, UPnP)
lose gekoppeltes System zur Vermeidung der Fragilität integrierter Systeme (z.B. MythTV)
Überblick
- Aufnahmeplanung via Web-Interface
- Speicherung als Matroska-Video in Dateisystem (konfigurierbare Pfad- und Dateinamen)
- Live-TV-Streams verfügbar:
via HTTP-Stream (z.B. als Playlist in VLC (http://SERVER:9981/playlist) oder via Web-Interface,)
via HTSP-Stream (z.B. XBMC: htsp://SERVER:9982)
- Verteilung der Aufnahmen via UPnP
- Frontend für das Anschauen von Kanälen und Aufnahmen, sowie zur Planung zukünftiger Aufnahmen
Server-Einrichtung
Tvheadend
Installation
Launchpad-PPA einfügen und dann installieren
echo "deb http://ppa.launchpad.net/adamsutton/tvheadend/ubuntu precise main" >>/etc/apt/sources.list.d/tvheadend.list aptitude update aptitude install tvheadend
- Nutzername und Passwort für Über-Admin eintragen
die Installation schlägt fehl, da das Paket upstart anstelle von sysv-rc erfordert
Symlink für upstart-Datei entfernen:
rm /etc/init.d/tvheadend
ein simples init-Skript herunterladen und als /etc/init.d/tvheadend speichern
Paket-Installation finalisieren (nicht entfernen!):
aptitude install -f
Einrichtung
Web-Interface anwählen: http://SERVER:9981/
unter Configuration -> Access Control einen neuen Nutzer mit der Stream-Berechtigung anlegen (kein Nutzername (bzw. *)
- dies ist für das zugangsunbeschränkte Streaming (z.B. via VLC) sinnvoll
Speicherverzeichnis festlegen (Configuration -> Digital Video Recorder)
- Input-Kanäle konfigurieren:
Configuration -> TV-Adapters
- Karte aus der Auswahlliste wählen
Add DVB Network by location
nach einer Weile tauchen unter Multiplexes die Transponder auf
noch ein wenig später füllt sich die Services-Liste
- hier muss nun jeder gewünschte Sender einen Namen bekommen
minidlna
Paket installieren:
aptitude install minidlna
wahrscheinlich sollte der UPnP-Server unter derselben Nutzer-ID und Gruppe laufen, wie tvheadend (siehe /etc/default/minidlna)
in diesem Fall muss das Datenbank-Verzeichnis von minidlna nun diesem Nutzer übergeben werden:
chown -R hts. /var/lib/minidlna
das Verzeichnis für die Datenquelle (media_dir in der Konfigurationsdatei anpassen (/etc/minidlna.conf (siehe Speicherort in tvheadend)
Service neustarten:
invoke-rc.d minidlna restart
Client-Einrichtung
VLC
als Netzwerk-Quelle http://SERVER:9981/playlist angeben
- in der Playlist-Ansicht sind nun alle Fernsehkanäle wählbar
XBMC
HTSP/UPnP
Die folgenden Übertragungswege sind eher minimalistisch. Sie funktionieren jedoch ohne weitere XBMC-Plugins.
- Fernseh-Kanäle live sehen:
als Videoquelle die URL http://SERVER:9982/ hinzufügen (dies wird nun als Tvheadend-Client angezeigt)
- Aufnahmen betrachten:
- als Videoquelle den UPnP-Server hinzufügen
- Sortierung später absteigend nach Datum einstellen
- als Videoquelle den UPnP-Server hinzufügen
PVR-Plugin
Mit dem PVR-Plugin für tvheadend sind die folgenden Features verfügbar:
- Live-TV schauen
- Aufnahmen betrachten
- Aufnahmen planen
Vorgehensweise:
das tvheadend-Plugin ist derzeit noch nicht im XBMC-Repository angekommen - daher erstmal von folgendender Quelle herunterladen: http://www.dotnetdevelopers.net/XBMC/xbmcpvr.html
System -> Settings -> Live-TV: enabled aktivieren
- das obige Plugin (zip-Datei) auswählen
bei der Konfiguration des Zugangs muss derzeit der tvheadend-Super-Admin angegeben werden (Stand: November 2012)
- andernfalls können keine Aufnahmen abgespielt werden und es erscheinen 401-Fehler im xbmc-Log
nun ist auf der höchsten Menüebene ein Eintrag Live-TV sichtbar
Defizite / Offene Punkte
Speicherplatzverwaltung
tvheadend löscht keine alten Aufnahmen (siehe Recording Management)
- es muss also ein Skript geschrieben werden, um vor jeder Aufnahme (oder via cronjob) alte Aufnahmen zu löschen
Einfache Aufnahmeregeln
- Wiederholungen werden wohl schlecht erkannt
Mangelnde Meta-Informationen
laut mkvinfo werden die EPG-Informationen nicht in der Matroska-Datei abgespeichert
- oder stehen sie vielleicht woanders?
lässt sich das durch ein postrecording-Skript beheben?