Docker - Mini-Server als PVR-Receiver für DVB-T/S/C

Lange Zeit hatte ich als Ergänzung für meinen TV einen PVR:Festplattenreceiver, konkret eine Dreambox DM7020HD mit 2 DVB-C-Tunern im Einsatz. Ursprünglich für das Aufnehmen bestimmter Sendungen, später um rein über WLAN ohne Netzwerk oder Koax-Kabel mit einem FireTV-Stick live fernsehen zu können und die aufgenommenen Sendungen als Stream zu konsumieren. Leider hat die Dreambox nach mehr als 10 Jahren den Geist aufgegeben und wollte einfach nicht mehr booten. Bei der Suche nach einem Ersatz ist mir bewusst geworden, dass neue Geräte für den klassischen TV-Empfang mit DVB-S/C Mangelware sind. Scheint so als wäre der Markt für Festplattenreceiver in den letzten 10 Jahren dank diverser Streaming-Dienste massiv geschrumpft. Nicht gewillt für eine 7 Jahre alte Hardware mehrere Hundert Euro zu zahlen oder ein Abo für einen IP-Streaming-Dienst abzuschließen, kam mir die Idee in meinen bestehenden Mini-Server einfach mit einem DVB-C-Tuner in Form eines USB-Sticks auszustatten:

Vorhandener Docker Mini-Server ersetzt PVR-Festplatten-Receiver

Nicht nur die Receiver, auch die verfügbare Software ist meist schon etwas länger am Markt und so besitzt der weit verbreitete und kostenlose Service Tvheadend zwar eine sehr gute Stabilität und einen genialen Funktionsumfang, dafür aber eine nicht unbedingt zeitgemäße Benutzeroberfläche. Einmal eingerichtet findet der Zugriff ohnehin über einen entsprechenden Client, wie z.B Kodi statt, wodurch sich der direkte Zugriff auf die Benutzeroberfläche von Tvheadend zumindest bei mir voraussichtlich in Grenzen hält. Als Mini-PC habe ich einen Beelink 5560U im Einsatz und für den TV-Empfang verwende ich folgenden USB-Stick:

auf amazon.de:

Hauppauge WinTV-dualHD TV-Stick mit Fern...

Verfügbarkeit: Jetzt
Preis: 65,99 €
zum Stand: 27.02.2025 18:52
Details

Wer bereits ein Docker-Setup am Laufen hat, muss sich um bestimmte Abhängigkeiten zu anderen Softwarepaketen keine Gedanken machen. Der PVR-Dienst und dessen Container kann einfach im Terminal mit "docker run" gestartet werden: 

Docker Basics

Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

docker run -d \
  --name=tvheadend \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e RUN_OPTS= `#optional` \
  -p 9981:9981 \
  -p 9982:9982 \
  -v /path/to/tvheadend/data:/config \
  -v /path/to/recordings:/recordings \
  --device /dev/dri:/dev/dri `#optional` \
  --device /dev/dvb:/dev/dvb `#optional` \
  --restart unless-stopped \
  lscr.io/linuxserver/tvheadend:latest

Nach dem Start kann Tvheadend im Browser über die IP-Adresse des Docker-Servers und Port 9981 aufgerufen werden:

Beim Einrichten hatte ich das Problem, dass keine Kanäle gefunden wurden. Zufall, oder nicht: Erst nachdem ich am Host-Betriebssystem das Paket "linux-firmware-haupauge" hinzugefügt habe, hat auch der Sendersuchlauf funktioniert, daher an dieser Stelle die verwendeten Befehle für das Host-Betriebssystem, in meinem Fall Ubuntu:

sudo add-apt-repository ppa:b-rad/kernel+mediatree+hauppauge
sudo apt-get install linux-firmware-hauppauge

Hier ein paar Screenshots meiner Einstellungen in TVheadend

Zunächst habe ich unter Konfiguration / DVB-Inputs / Netzwerk ein Netzwerk angelegt:

Das Netzwerk kann dann den angeschlossenen TV-Adaptern, in meinem Fall den beiden Adaptern des Hauppauge WinTV-dualHD TV-Stick zugewiesen und nach Kanälen gesucht werden:

 

Die TV-Kanäle sollten nach einiger Zeit unter "Services" auftauchen.

Direktes transkodieren nach H.265

Wer einen halbwegs performanten Mini-PC einsetzt, kann die Aufnahmen on the fly als H.264 oder noch besser mit H.265 transkodieren, wodurch diese sehr wenig Speicher benötigen und dennoch eine sehr gute Qualität aufweisen. Für HD-Qualität wird der Stream mit H.265 von etwa 10 kB/s auf 2,5 kB/s reduziert. Dadurch erreicht die CPU meines Mini-PCs pro Stream eine Auslastung von etwa 25% bis 30%, beim Einsatz von 2 Tunern: kein Problem. 

Das Profil kann dann für alle Aufnahmen verwendet werden:

Da der Mini-PC 32GB-Ram besitzt, habe ich die Timeshift auf "Nur RAM" geändert um die SSD-Festplatte zu schonen.

Zugriff von Unterwegs über das Internet: Sicher und ohne VPN

Um bestimmte Sendungen von unterwegs programmieren zu können oder Sendungen live auf das Smartphone zu streamen, habe ich den Standardbenutzer in Tvheaden mit einem Benutzernamen und Passwort versehen. Ein zusätzlicher DNS-Eintrag im Internet und das bestehende Port-Forwarding inklusive Reverse-Proxy ermöglicht mir den Zugriff über das Internet, ganz ohne VPN, siehe: sichere https Verbindung: Traefik Reverse Proxy + Let´s Encrypt

Hier meine verwendete Docker-Compose-Konfig:

Docker-Compose.yaml -Datei

services:
  tvheadend:
    image: lscr.io/linuxserver/tvheadend:latest
    container_name: tvheadend
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Vienna
      - RUN_OPTS= #optional
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.tv.rule=Host(`tv.domain.tld`)"    
      - "traefik.http.routers.tv.entrypoints=websecure"
      - "traefik.http.routers.tv.tls.certresolver=myresolver"      
      - "traefik.http.services.tv.loadbalancer.server.port=9981"        
    volumes:
      - ./data:/config
      - ./recordings:/recordings      
    ports:
      - 9981:9981
      - 9982:9982
    devices:
      - /dev/dri:/dev/dri #optional
      - /dev/dvb:/dev/dvb #optional
    restart: always
networks:  
  default:
    name: webproxy      
    external: true

Client-Zugriff

Für den Zugriff im lokalen Netzwerk nutze ich mehrere FireTV-Sticks und ein Tablet mit Kodi als Client.

Über das Internet greife ich derzeit über die Weboberfläche von Tvheadend zu. Da die Weboberfläche nicht für mobile Geräte optimiert ist, nicht ganz optimal, aber besser als nichts.

Fazit

Der Umstieg von einem klassischen PVR-Festplatten-Receiver auf ein Mini-Server Setup mit Docker und einem DVB-C USB-Stick hat sich als praktikable Lösung erwiesen. Der Beelink 5560U Mini-PC in Kombination mit dem Hauppauge WinTV-dualHD TV-Stick und Tvheadend unter Docker bietet eine solide Grundlage für TV-Empfang und Streaming für mehrere TV-Geräte. Das Setup ermöglicht das direkte transkodieren der Aufnahmen nach H265 und den Zugriff über das Internet.

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Beitrag erstellt von Bernhard | Veröffentlicht: 27.02.2025 | Aktualisiert: 27.02.2025 | Translation English |🔔 | Kommentare:0

Fragen / Kommentare


 
Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details