Ein eigener TV-Server mit TVHeadend auf dem Raspberry Pi

Mit dem nahenden Ende von DVB-T(1) ergeben sich einige Konsequenzen für mein TV-Rekorder Setup. Bisher wurde dies mit einem Raspberry Pi 2, einem DVB-T USB-Stick, einer ausreichend großen Festplatte und TVHeadend gelöst.

Da ein Kabelanschluss vorhanden ist, wurde dieser nun aktiviert und nach Möglichkeiten des Empfangs Ausschau gehalten. Dummerweise ist mein TV-Gerät weder smart noch besonders neu, daher fiel die Wahl auf einen DVB-C USB-Stick. Der Ansatz: Ein Raspberry sitzt als Server im Netzwerk, stellt den TV-Empfang bereit und das Media-Center (LibreElec) bringt es auf den Fernseher. Als Bonus hat man die Möglichkeit, Aufnahmen des TV-Signals zu machen und ebenfalls im Netzwerk zu streamen.

Hierzu benötigt:

  • Raspberry Pi (2+)
  • Festplattenplatz
  • TVHeadend Installation
  • aktiviertes TVHeadend Plugin in Kodi
  • DVB-C USB Stick mit Linux-Treibersupport
  • eine gute Quelle für Infos: linuxtv.org [sic]
  • digitaler Kabelanschluss

Software:

  • TVHeadend Installation
  • w_scan (optional, in meinem Fall notwendig)

Schritt 1: TVHeadend Installation

TVHeadend ist nicht in den Paketquellen von Debian Jessie enthalten, daher ist das Hinzufügen zu den Paketquellen notwendig, bevor installiert werden kann.

$ echo "deb http://dl.bintray.com/tvheadend/deb/ jessie release" >> /etc/apt/sources.list
$ sudo apt-get update && sudo apt-get install tvheadend

Im Zuge der Installation wird ein User-Account für das Web-Backend abgefragt, zwecks Passwortschutz.

Schritt 2: Treiberinstallation und TVHeadend Integration

Im besten Fall hat man den Treiber schon zur Hand und speichert ihn in /lib/firmware auf dem TV-Pi. Ansonsten ist auch hier linuxtv.org eine Queller reichhaltiger Informationen. Manchmal ist auch ein Stick den man hat baugleich mit diversen anderen, auch dazu kann man hier viel erfahren.

Wird der Stick erkannt, kann er im Tab "Configuration" in TVHeadend unter "DVB Inputs" gefunden werden. Hier muss der Stick nun aktiviert und ihm ein Netzwerk zugeordnet werden.

Im besten Falle kann man nun im Konfigurationsmenü bereits den passenden Kabelanbieter auswählen. In meinem Fall gab es leider keinerlei Info, mit welchem Kabelbetreiber mein Anbieter zusammenarbeitet. Darum wollte und wollte einfach kein Sender im Sendersuchlauf auftauchen.

Schritt 3: Hack your Kabelnetzbetreiber (optional)

Ohne Sender macht es keinen Spaß, darum habe ich mit wscan überprüft, ob überhaupt irgendetwas empfangen wird. Was die ganzen Optionen bedeuten, findet sich hier im UbuntuusersWiki.

w_scan -f c -c DE -X > channels.conf

Jedenfalls endete es mit einer Liste von empfangbaren Sendern, zu denen auch die zugehörigen Sequenzen gelistet werden.

cat channels.conf

SWR RP HD(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:5131:5132:10304
Das Erste HD(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:5101:5102:11100
WDR HD Köln(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:5501:5502:28325
ARD-alpha(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:1401:1406:28487
tagesschau24(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:101:102:28721
ONE(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:201:206:28722
arte(ARD):330000000:INVERSION_AUTO:6900000:FEC_NONE:QAM_256:401:402:28724

TVHeadend hat ein anderes Eingabeformat, als die Ausgabe von w_scan hergibt, daher habe ich eine kleine Testdatei generiert, die nur einen empfangbaren Sender enthielt. Dabei habe ich mich an das Format der anderen Mux-Files gehalten.

cat de-test

[Martens.tv HH]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 642000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

Diese habe ich dann in TVHeadend eingeführt, indem ich sie an den entsprechenden Ort kopiert habe:

$ cp de-test /usr/share/tvheadend/data/dvb-scan/dvb-c/

Wenn ich nun TVHeadend neu starte, taucht die Datei auswählbar in der Konfiguration auf. Damit habe ich dann einen Sendersuchlauf gestartet, mit dem Effekt, dass auch alle anderen Sender in den gefundenen Channels auftauchten.

Scheinbar braucht der Scan in TVHeadend nur einen initialen Startwert der Empfangsfrequenzen und nimmt dann ein festes Stepping zur Hand, um die restlichen Sender zu finden. Gut für mich, denn ansonsten hätte ich alle Scan-Ergebnisse in das Mux-File übertragen müssen.

Dieser Schritt hat mir einige Kopfschmerzen bereitet, da ich keinerlei Dokumentation für fehleden Muxes gefunden habe.

4. Restkonfiguration

Man sollte TVHeadend noch den Pfad zur Festplatte mitgeben, damit die Aufnahmen nicht die interne SD-Karte vollschreiben. Ansonsten können nun Aufnahmen geplant und Live-TV ins Netzwerk gestreamt werden. Das schöne an TVHeadend: Theoretisch können weitere DVB-X Adapter angeschlossen werden, für ein Multi-Input-Setup. Also vor allem dann interessant, wenn man mehrere Aufnahmen parallel machen möchte.


Comments

comments powered by Disqus