TVHeadend auf dem RaspberryPi installieren

TVHeadend LogoAuf dieser Seite wird beschrieben wie man TVHeadend auf dem RaspberryPi installiert. Ich erkläre es anhand eines Raspberry Pi 3 Modell B+ (Partnerlink), der zur Zeit (2017) das aktuelle Modell der RaspberryPi Foundation ist.

Als Betriebssystem habe ich Raspian in der Serverversion installiert. Wie man es auf den RaspberryPi bekommt beschreibe ich auf der Seite „Raspian installieren – linuxfun.de“.

Die Installation mache ich per SSH, dies setzt voraus das man sich auf dem RaspberryPi per SSH einloggen kann. Wie man den SSH-Zugang freischaltet wird auf der Seite „SSH-Zugang Raspian – linuxfun.de“ beschrieben.

Es ist möglich mehrere TV-Karten zu betreiben, so kann man ein Programm aufnehmen und ein anderes zu schauen. Wie man TVKarten installiert, wird auf der Seite „TV-Karte installieren – minipctv.de“ beschrieben. Gut lauffähig ist die DVBSky S960 (Partnerlink), die habe ich auch bei mir im Einsatz.

 


Was wird benötigt

  1. RaspberryPi 2 oder 3 mit Raspian lite (Server Version)
  2. TV-Karte: z.B. DVBSky S960 (Partnerlink)
  3. 2-3GB freier Speicherplatz auf der SD-Karte

Vorbereiten: Benötigte Pakete installieren

Als erstes werden die für die Installation von TVHeadend benötigten Pakete nachgeladen. Dazu werden veraltete Pakete aktualisiert und dann die für die Installation von TVHeadend benötigten Pakete installiert.

Installierte Pakete aktualisieren:

sudo apt-get update
sudo apt-get upgrade

Pakete installieren:

sudo apt-get install openssl python git ffmpeg cmake git avahi-daemon dvb-apps tar gettext libssl-dev liburiparser-dev libcurl4-gnutls-dev libdvbcsa-dev

Dies kann eine Weile dauern je nach Aktualität des Systems.

Ist der Vorgang abgeschlossen, dann den RaspberryPi neu starten:

sudo reboot
 

TVHeadend kompilieren

Jetzt wird die aktuelle Source von TVHeadend geladen:

git clone https://github.com/tvheadend/tvheadend.git

Anschließend gehen wir in den von git neu erstellten Ordner:

cd tvheadend

Mit folgendem Befehl wird das Kompilieren eingestellt:

./configure --disable ffmpeg --disable-hdhomerun_client --disable-libvpx --enable-bundle

Das Ergebnis sollte dann so aussehen:
Screenshot nach ./configure
Nun kann das eigentliche kompilieren gestartet werden:

make

Dies dauert eine Weile, bei mir ca. 30-60min.

Anschließend kann TVHeadend mit folgendem Befehl installiert werden:

sudo make install
 

TVHeadend beim Systemstart starten

Nun wird ein neuer Benutzer (hts) angelegt mit dem TVHeadend zukünftig im Hintergrund ausgeführt wird. Dieser wird der Gruppe „Video“ zugeordnet.

sudo useradd -m -g video hts

Das starten von TVHeaend wird mit dem Dienst „Systemd“ durchgeführt. Um es darüber zu starten müssen wir eine Datei anlegen. Diese muss in einem bestimmt Ordner liegen. Dahin wird jetzt gewechselt:

cd /etc/systemd/system/

Die Textdatei erstellen wir mit dem Texteditor Nano:

sudo nano tvheadend.service

Dort muss folgendes eingetragen werden, falls ein anderer Benutzer als „hts“ angelegt wurde, dann muss dieser angepasst werden:

[Unit]
Description=tvheadend
After=network.target

[Service]
Type=forking
PIDFile=/run/tvheadend.pid
ExecStart=/usr/local/bin/tvheadend -f -p /run/tvheadend.pid -C -u hts -g video
ExecStop=/usr/bin/rm /run/tvheadend.pid
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Anschließend die Datei speichern („Alt-O“) und nano beenden („Alt-X“).

Damit TVheadend darüber startet, muss noch folgender Befehl ausgeführt werden:

sudo systemctl enable tvheadend

Anschließend starten wir das Programm von Hand, dies wird beim nächsten mal automatisch durchgeführt:

sudo systemctl start tvheadend

Dies war hier schon alles. Wie TVHeadend konfiguriert wird kann man hier nachlesen.

 

6 Antworten

  1. Gerald sagt:

    Hallo!

    Vielen dank für die Anleitung. Habe jedoch noch eine Frage.
    Habe den Eintrag in die tvheadend.system Datei wie oben beschrieben gemacht, jedoch wird tvheadend nach einem Neustart nicht ausgeführt. Ein manueller Start über „sudo systemctl start tvheadend“ funktioniert hingegen.
    Was könnte hier nicht ganz stimmen?

    Vielen Dank für die Hilfe, Gerald

    • Hallo Gerald!

      Evtl. einfach ein Schreibfehler? Du hattest „tvheadend.system“ geschrieben, die Datei müsste aber „tvheadend.service“ heißen.

      Zusätzliche habe ich die Datei „tvheadend.service“ leicht geändert. Dort gab es zwei überflüssige Einträge, vielleicht schafft das auch Abhilfe. Bei mir lief es allerdings auch mit den Einträgen.

      Gruß, Mathias

      • Gerald sagt:

        Hallo Mathias!

        Habe nochmals die Schritte nach deiner Anleitung ausgeführt und jetzt funktionert alles wie es soll.
        Mein Fehler lag glaube ich an dem falschen Befehl zur Aktivierung von TVheadend Service. Der korrekte Befehl lautet „sudo systemctl enable tvheadend“ und nicht „sudo systemctl enable tvheadend.service“.

        Vielen Dank für deine Hilfe,
        Gerald

  2. Anonymous sagt:

    Ich kriege einen Fehler bei ./configure
    mit zusätzlich –disable-tvhcsa funktionierts

    • Hallo, ich habe das gerade ausprobiert und bekomme auch einen Fehler. Abhilfe schafft wie oben beschrieben ./configure mit zusätzlichem –disable-tvhcsa.

      Alternativ kann das Paket „libdvbcsa-dev“ installiert werden. Die Anleitung habe ich so angepasst das das Paket mit installiert wird.

      Danke noch für die Info, Gruß Mathias

  3. Hier können Kommentare/Fragen geschrieben werden!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.