Multimedia Installation mit SAT>IP, Tvheadend und Kodi!
Zentralisierter Aufbau
Früher hatte ich mal Kabelanschluss mit entsprechender Verkabelung, später wurde das ganze durch DVB-T ersetzt und zuletzt mit SAT-Empfang. Jedesmal muss an die Verkabelung ran und in den Leerrohren fehlt es an Kapazitäten um sowohl Coaxial, als auch Ethernet-Kabel zu verteilen. Deshalb wurden die Coaxial-Kabel komplett durch ein CAT-7 Netzwerk ersetzt und Ursprünglich (ja ist ne Weile her) mit NetCeiver und NetClients von Reel übers Netz verteilt, die die Signale auf Basis von VDR übers Netz verteilten.
Die Reel-Umsetzung hatte Potential, aber auch ihre Tücken und nach Pleite des Herstellers, starb auch die Hoffnung, dass das ganze stabil und Zukunftssicher lief. Nachdem sich dann alterungsbedingt immer mehr Probleme einstellten, musste eine Neue Lösung her. Die Idee war Sat over IP (SAT>IP) kombiniert mit Clients auf Basis von Kodi
SAT>IP Server
Bild des Octopus Net SatIP Receivers
Als SAT>IP Server hab ich mich für einen Octopus NET von Digital Devices entschieden, er hat mit acht Tunern genügend Kapazitäten um das ganze Haus zu bespielen und kann zusätzlich diverse parallele Aufnahmen bedienen. Bei den Tests hat er immer hervorragen abgeschnitten und er besitzt die Möglichkeiten zentral über zwei CAM-Slots verschlüsselte Sender zu entschlüsseln, ähnlich wie der NetCeiver früher. Eine Option, die ich dann nicht genutzt habe, aber das war mir zum Kaufzeitpunkt noch nicht bewusst.
Das Modell ist inzwischen nicht mehr erhältlich, aber es gibt Nachfolgemodelle.
Tvheadend
Bild des Raspberry PI, auf dem Tvheadend läuft
Stellt sich zunächst die Frage, wieso hinter den SAT>IP Server noch eine Zwischenschicht schalten?
Sagen wir mal so, für die Kodi-Clients zum fernsehen, wäre es nicht nötig, aber ich wollte: eine zentrale Aufnahmefunktion inklusive Serienaufnahmen zentral pflegbare Senderlisten Einbezieung von IP-TV-Streams Decodierung von verschlüsselten Programmen zentral für alle Clients
Zunächst habe ich Tvheadend mit aufs QNAP-NAS installiert, als Virtuelle Maschine und dann auch als Docker Instanz, technisch lief beides problemlos, allerdings führte das dazu, dass sich die Festplatten nicht mehr abschalteten und das trieb den Stromverbrauch unnötigerweise nach oben.
Ein erster Versuch mit einem Betrieb auf einem Raspberry PI 3 verlief unbefriedigend, es gab immer wieder Packagedrops beim Netzwerkinterface, was sich an den Empfangsgeräten in Bildstörungen widerspiegelte. Mit erscheinen des Raspberry PI 4 hat sich die Sache dann erledigt und der Umzug erfolgte.
Um das NAS bei Nichtbedarf abschalten zu können, habe ich dem Raspberry PI 4 ein Argon ONE M.2 Gehäuse spendiert, mit M2-SSD-Steckplatz und einer Kingston M.2 SSD A400 480GB. Aufnahmen landen dort und werden erst nach dem Schnitt aufs NAS übernommen.
Für unsere südlichen Nachbarn habe ich dann einen Easymouse 2 USB Kartenleser angeschlossen und OSCAM installiert, damit liegt an den Clients das unverschlüsselte Signal an.
Kodi
Bild eines Raspberry PI, auf dem Kodi läuft
Clientseitlig läuft Kodi, für die Fernseher wurde je ein Respberry PI 3 beschafft und mit LibreElec bestückt, auf Computer und Tablet, sowie einem Orbsmart Soundpad 700 für die Küche wurde Kodi ebenso installiert. Auf all den Geräten stehen die Fernsehsender über Tvheadend, als auch Aufnahmen vom NAS zur Verfügung.
Um das zu koordinieren habe ich auf den Raspberry PI 4 mit Tvheadend auch noch eine MariaDB Datenbank und eine NFS-Freigabe für die Thumbnails gepackt. Im Kodi-Konfigurationsverzeichnis wird unter userdata hierzu eine Konfigurationsdatei namens advancedsettings.xml gepackt:
<advancedsettings> <musicdatabase> <type>mysql</type> <host>tvheadend</host> <port>3306</port> <user>user_kodi</user> <pass>****</pass> </musicdatabase> <videodatabase> <type>mysql</type> <host>tvheadend</host> <port>3306</port> <user>user_kodi</user> <pass>***</pass> </videodatabase> <videolibrary> <importwatchedstate>false</importwatchedstate> <importresumepoint>false</importresumepoint> </videolibrary> <pathsubstitution> <substitute> <from>special://masterprofile/Thumbnails</from> <to>nfs://tvheadend/home/pi/Thumbnails</to> </substitute> </pathsubstitution> </advancedsettings>
Analog zur advancedsettings.xml wird auch eine sources.xml hinterlegt, sie enthält die Mounts vom NAS um auf Filme, Serien usw. zugreifen zu können, die Verzeichnisse sind auf dem NAS entsprechend freigegeben:
<sources> <programs> <default pathversion="1"></default> </programs> <video> <default pathversion="1"></default> <source> <name>TV-Shows</name> <path pathversion="1">nfs://nasqnap671/Qmultimedia/TV-Shows/</path> <allowsharing>true</allowsharing> </source> <source> <name>Oper</name> <path pathversion="1">nfs://nasqnap671/Qmultimedia/Musik/Oper/</path> <allowsharing>true</allowsharing> </source> <source> <name>POP</name> <path pathversion="1">nfs://nasqnap671/Qmultimedia/Musik/POP/</path> <allowsharing>true</allowsharing> </source> <source> <name>Movies</name> <path pathversion="1">nfs://nasqnap671/Qmultimedia/Movies/</path> <allowsharing>true</allowsharing> </source> </video> <music> <default pathversion="1"></default> </music> <pictures> <default pathversion="1"></default> <source> <name>pictures</name> <path pathversion="1">nfs://nasqnap671/Qmultimedia/pictures/</path> <allowsharing>true</allowsharing> </source> </pictures> <files> <default pathversion="1"></default> </files> <games> <default pathversion="1"></default> </games> </sources>
Das praktische an der Konstellation, es funktioniert auch Remote per VPN, wenn ich mich per Wireguard VPN über die Fritzbox einwähle, ist das wie zu Hause. Einen Raspberry PI 3 (den, der nicht als Tvheadend verwendet werden konnte und über war) hab ich so mit Wireguard konfiguriert. Beim Router von bekannten angestopselt, an den Fernseher gesteckt und meine Sammlung liegt bereit. Echt praktisch!
NAS
Bild des QNAP NAS
Als Ablage für Filme, Serien und sonstiges dient ein QNAP NAS als "Datengrab". Natürlich wird es nicht nur dafür verwendet, aber eben auch. Die Verzeichnisse wurden per NFS freigegeben und bei den Kodi-Clients entsprechend eingebunden.