Jump to content

DVBViewer und Media Server unter Linux


Griga

Recommended Posts

Posted

Ich habe mittlerweile auch DVBViewer sauber unter ZorinOS am laufen mit mit MPC Video Renderer samt nativer D3D11 im LAV decoder dank DXVK für Wine, das man über winetools installieren kann. Dazu ein tvheadend Server, auf dem eine Win10 VM mit DMS läuft und direkt auf tvheadend zugreift und an den DVBViewer client streamt. Mit dieser Config kann ich sowohl über DVBViewer, als auch TVHPlayer und Kodi mit theadend oder dem DVBViewer Plugin streamen. Damit bin ich völlig unabhängig vom Betriebssystem und habe beiden Welten vereint.

  • Thanks 1
Posted (edited)

Falls es jemand interessiert, wie man tvheadend und DMS auf einem Rechner zum laufen kriegt und eine direkte Brücke zwischen beiden herstellt, eine kurze Anleitung zusammengefasst mit Hilfe einer KI. Die KI deshalbt, weil es eine harte Nuss war die Brücke herzustellen und die üblichen Methoden eine Brücke zwischen der VM und dem Host zumindest bei mir nicht gegriffen haben. Ausgangssystem ist ein Minisforum G41 mit einem Celerron J4105 und 8GB Ram auf dem Debian 13  und für die VM VirtualBox installiert wurde. Netzwerkverbindung nach Aussen erfolgt ausschließlich über Wlan. Wer Lan nutzen kann, der ist sogar deutlich besser aufgestellt. Es hat etliche Vesuche und Fehlschläge gedauert, bis es funktioniert hat, was ich euch bestenfalls ersparen möchte. Also fängt erst garnicht an mit QEMU und WIndows7 für die VM. Zusätzlich wurden zwei Schalter eingebaut, die sowohl die VM, als auch den Host entweder herunterfahren bzw. rebooten. DIe VM heisst bei mir Windows10-DMS. Sobald ihr das virtuelle Kabel angelegt habt, müsst ihr in WIndows die Firewall für das neue Nertwerk deaktivieren und der zweiten Netzwerkkarte die IP 192.168.100.2 vergeben. Die erste ist ja die Brücke zu euren Wlan bzw Lan, die ihr am Anfang  vor der Installation von Windows im Bridged Modus erstellt habt. Im DVBViwer Media Server dann die Ip des Host 192.168.100.1 eintragen.

 

hier der code für die beiden Schalter:

 

#!/bin/bash
# Sendet das Signal zum Herunterfahren an die Windows 10 VM
/usr/bin/vboxmanage controlvm "Windows10-DMS" acpipowerbutton 2>/dev/null

# Warte maximal 20 Sekunden, bis die VM wirklich geschlossen ist
for i in {1..20}; do
    if ! /usr/bin/vboxmanage list runningvms | grep -q "Windows10-DMS"; then
        break
    fi
    sleep 1
done

# Jetzt den Debian-Server sicher ausschalten
sudo /sbin/poweroff

 

und

 

#!/bin/bash
# Sendet das Signal zum Herunterfahren an die Windows 10 VM
/usr/bin/vboxmanage controlvm "Windows10-DMS" acpipowerbutton 2>/dev/null

# Warte maximal 20 Sekunden, bis die VM wirklich geschlossen ist
for i in {1..20}; do
    if ! /usr/bin/vboxmanage list runningvms | grep -q "Windows10-DMS"; then
        break
    fi
    sleep 1
done

# Jetzt den Debian-Server sicher neu starten
sudo /sbin/reboot

 

 

die kann man sich schön auf die taskleiste legen.

 

  • Schritt 1: Windows 10 & VirtIO-Treiber
    Wechsel von der veralteten Windows 7 VM auf ein modernes Windows 10 mit paravirtualisierten VirtIO-Netzwerktreibern für maximale Paket-Geschwindigkeit
  • Schritt 2: Das virtuelle Kabel im RAM (vbox-tap)
    Erstellung eines rein internen, unsichtbaren Netzwerkkabels im Arbeitsspeicher des Debian-Servers (192.168.100.1). Windows greift darüber direkt auf den Server zu – völlig ohne WLAN-Belastung.
  • Schritt 3: Die blitzschnelle nftables-Umleitung
    Einbau einer Kern-Regel in Debian 13, die SAT>IP-Anfragen (Port 554) von der internen IP lautlos im RAM an die funktionierende Haupt-IP von Tvheadend weiterleitet.
  • Schritt 4: Der rebootsichere Systemdienst
    Verankerung des virtuellen Kabels in einem Debian-Systemdienst (systemd). Das Kabel wird beim Booten mit vollen Rechten erstellt, bevor die VM nach 15 Sekunden automatisch lautlos (headless) startet.

und jetzt die einzelnen Schritte.

sudo nano /usr/local/bin/vbox-network-init.sh

 

den code einfügen und abspeichern:

#!/bin/bash
# 1. Erstellt das virtuelle Kabel mit modernem Befehl, falls es fehlt
if ! /usr/sbin/ip link show vbox-tap >/dev/null 2>&1; then
    /usr/sbin/ip tuntap add dev vbox-tap mode tap user Benutzer <---"hier trägt ihr euren benutzernamen ein. Kleingeschrieben"
fi

# 2. Schaltet das Kabel ein und vergibt die TV-Netzwerk-IP
/usr/sbin/ip link set vbox-tap up
/usr/sbin/ip addr add 192.168.100.1/24 dev vbox-tap 2>/dev/null || true

# 3. Lädt die permanenten nftables-Regeln fehlerfrei
/usr/sbin/nft -f /etc/nftables.conf
/usr/sbin/nft -f /etc/nftables.tvh_nat

# 4. Kurze Pause für die Routing-Tabelle im RAM und sauberer Ausstieg
/usr/bin/sleep 2
exit 0

 

ausführbar machen mit:

sudo chmod +x /usr/local/bin/vbox-network-init.sh

 

Den Systemdienst erstellen:

sudo nano /etc/systemd/system/vbox-network.service

 

den Inhalt reinkopieren und abspeichern:

[Unit]
Description=Virtuelles VBox-Netzwerkkabel und NFTables fuer TV-Stream
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/vbox-network-init.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

 

Dienst aktivieren mit:

sudo systemctl daemon-reload
sudo systemctl enable vbox-network.service

 

Die zweite Netzwerkkarte der VM zuweisen:

vboxmanage modifyvm "Windows10-DMS" --nic2 bridged --bridgeadapter2 vbox-tap --nictype2 virtio

 

Die Weiterleitungsregeln anlegen:

sudo sh -c 'echo "table ip tvh_nat {
    chain prerouting {
        type nat hook prerouting priority dstnat; policy accept;
        ip daddr 192.168.100.1 tcp dport 554 dnat to 192.168.1.10:554
        ip daddr 192.168.100.1 udp dport 554 dnat to 192.168.1.10:554
    }
}" > /etc/nftables.tvh_nat'

 

Die Regel einbinden und Dienst aktivieren:

sudo sed -i '/include "\/etc\/nftables.conf"/a include "/etc/nftables.tvh_nat"' /etc/nftables.conf
sudo systemctl enable nftables

 

 und anschließend Windows Start nach 15 Sekunden:

nano ~/.config/autostart/vbox-win10.desktop

 

den inhalt reinkopieren und abspeichern:

[Desktop Entry]
Type=Application
Name=Autostart Windows10-DMS
Exec=sh -c "sleep 15 && vboxmanage startvm \"Windows10-DMS\" --type headless"
NoDisplay=true

 

 

 

Edited by honeyxx

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...