TVHeadend mit DVBSky S960

Was ist TVHeadend?

Bei TVHeadend handelt es sich um eine Software mit der TV Inputs empfangen und zentral verwaltet werden. Man erstellt sich damit quasi einen IPTV Server der verschiedene DVB Quellen (DVB-S, DVB-T, DVB-C) im Netzwerk bereitstellen kann. Ein Vorteil ist unter anderem die zentrale Verwaltung der Kanäle, zusammenführen verschiedener Quellen und ein zentrales EPG.

Hardware

Installation

Zur Installation benötigt man ein auf Linux basierendes Betriebssystem. Die Architektur ist dabei egal und kann x86, x64 oder auch ARM sein. Zu beachten ist nur das mit ARM, so weit mir bekannt, kein Transcoding möglich ist. Transcoding benötigt man wenn man den Stream den TVHeadend abgibt umwandeln will um diesen z.B. via Web (z.B. auf dem Webinterface von TVH) ausgeben will.

Ich beschreibe hier die Installation auf einem Ubuntu/Debian System (ARM) in Verbindung mit einem DVBSky S960 USB Empfänger.

Bevor wir uns an TVHeadend machen, sollten wir prüfen ob der Empfänger überhaupt erkannt wird und unter der verwendeten Linux Umgebung läuft.
Dazu wird der Empfänger an den Server angeschlossen. Anschließend öffnen wir ein Terminal oder verbinden und via SSH mit dem Server und geben folgenden Befehl ein:

dmesg | grep dvb

Nun sollte dort etwas wie das folgende stehen:

usbcore: registerd new interface driver dvb_usb_dvbsky
usb 1-3.2: dvb_usb_v2: found a 'DVBSky S960/S860' in warm state
.
.
.
usb 1-3.2: dvb_usb_v2 'DVBSky S960/S860' sucessfully initialized and connected

Steht dort nichts mit „warm state“ sondern sogar „cold state“ wurde der Empfänger zwar erkannt, aber es fehlt der passende Treiber. Steht überhaupt nichts da, unterstütz das Linux System überhaupt keine DVB Geräte. (lsmod)
Im Falle eines fehlenden Treibers (Firmware) sollte dort eine Zeile auftauchen in der das System nach einer Firmware sucht. Bei DVBSky S960 sollte die Firmware „dvb-fe-ds3103.fw“ heißen. Um diese zu installieren, ziehen wir den Empfänger vom Server wieder ab und führen folgende Befehle durch.

cd ~
wget http://www.dvbsky.net/download/linux/dvbsky-firmware.tar.gz
tar xfvz dvbsky-firmware.tar.gz
cd dvbsky-firmware
sudo ./copy-firmware.sh

Wenn das Script ausgeführt wurde sollte das im besten Fall mit „sucessfull“ quittiert werden.
Wenn der Empfänger nun wieder angeschlossen wird wieder mit „dmesg“ prüfen ob der Empfänger nun im „warm state“ ist.
Für den Fall das eine andere Firmware benötigt wird, kann man einfach nach der Datei bei Google suchen, diese herunterladen und nach „/lib/firmware“ kopieren.

Jetzt geht es an den TVHeadend Server. Man kann dazu entweder über APT den Server direkt aus dem Repository installieren oder via GITHub die neueste Version ziehen und selber kompilieren.
Wie es über das Repository geht könnt ihr hier nachlesen: https://tvheadend.org/projects/tvheadend/wiki/AptRepository

Zunächst benötigen wir zum kompilieren von TVH einige Pakete.

sudo apt-get install libcurl4-openssl-dev git build-essential gettext libssl-dev w-scan unzip git-core pkg-config dvb-apps libdbus-1-dev cmake libdbus-glib-1-dev libcurl4-openssl-dev libavahi-client-dev zlib1g-dev libiconv* liburiparser* ca-certificates

Anschließen erstellen wir uns ein neues Verzeichnis namens „build“ (nur der Übersichtlichkeit halber), laden TVH aus dem GIT und kompilieren es.

cd ~
mkdir build
cd build

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

./configure --disable-ffmpeg_static --disable-libav
make
make install

Der verwendete „configure“ Befehl schaltet das Transcoding ab. Wer mit Transcoding kompilieren will benutzt einfach nur „./configure“.
Die einzelnen Vorgänge (configure und make) dauern etwas.

Wenn alles erfolgreich abgeschlossen ist, müssen wir TVHeadend einmal mit folgendem Befehl starten:

sudo /usr/local/bin/tvheadend -f -p /run/tvheadend.pid -C -u root -g root

Nun läuft der Server und ist über die Weboberfläche unter http://<ip-des-servers>:9981 erreichbar. Es sollte ein Assistent aufklappen um TVHeadend zu konfigurieren. Ist das geschehen, beenden wir den TVH Server wieder (STRG + C) und legen ein Systemd Startscript an:

sudo nano /etc/systemd/system/tvheadend.service

Die Datei befüllen wir mit folgendem Inhalt:

[Unit]
Description=tvheadend
After=network.target

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

[Install]
WantedBy=multi-user.target

Anschließend machen wir das Start Script noch ausführbar, machen es Systemd bekannt, aktivieren und starten den Dienst:

sudo chmod +x /etc/systemd/system/tvheadend.service
sudo systemctl enable tvheadend
sudo systemctl start tvheadend

Damit sollte der Server nun installiert sein und automatisch starten. Die Login Daten wurden im Assistenten vergeben.

3 Kommentare

  1. Hallo und Danke für den hilfreichen Post.

    Hätten Sie auch Infos zu der Konfiguration für Astra 19.2 und/oder Hotbird 13.0 ?

    Danke und LG

    1. Was genau wird denn benötigt? Im Assistenten kann der jeweilige Satellite einfach ausgewählt werden. Das muss dann nur dem jeweiligen Empfänger hinzugefügt und der Empfänger auch aktiviert werden.
      Anschließend scannt TVH selbst nach Muxes. Diese müssen dann nur noch Kanälen zugeordnet werden, was man automatisch erledigen lassen kann.

    2. Unter „Konfiguration“ –> „Netzwerke“ ein neues Netzwerk anlegen. DVB Input wählen und bei DVB-S kann man dann bei „Vordefinierte Muxes“ den entsprechenden Satelliten auswählen. Wenn man das dann angelegt hat kann man unter „TV-Adapter“ beim eigentlichen Adapter (bei mir Universal LNB only) das angelegte Netzwerk verknüpfen.

      Anschließend scannt der Server nach „Muxes“. In dem Reiter sieht man dann auch einige. Die stehen anfangs bei Suchergebnis auf „Ausstehend“ und sollten später auf „Ok“ stehen. Manche können auch auf „Fail“ stehen. Das kann ggf. richtig sein, aber all zu viele dürften es nicht sein.

Schreibe einen Kommentar

Your email address will not be published.