Video-Netzwerk mit VLC

Hard- und Software Fragen rund um die dbox2 - außer zu, JtG-Team-Image
Antworten
Nachricht
Autor
Benutzeravatar
Pedant
admin-c
admin-c
Beiträge: 4285
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Bad Vilbel
Kontaktdaten:

Video-Netzwerk mit VLC

#1 Beitrag von Pedant » Di 09 Nov 2004, 4:17

Hallo,

nach vielem Lesen, Copy/Past und Trial&Error habe ich endlich rausgefunden wie es geht. Ich war bei der Suche letztendlich ziemlich überrascht, dass ich dazu keine Anleitung gefunden habe, sondern nur Fragmente und diverse Fragen zum Thema, aber vielleicht kann ich auch nicht Suchen.

Ziel war es das laufende dbox-Programm ins Netzwerk zu streamen und an mehreren PC sehen zu können. Das Problem dabei ist die 10 MBit Anbindung der dbox, also kann zwar ein PC und vielleicht noch ein Zweiter mit der JtG-Option "Im VLC abspielen" auf das Programm zugreifen, aber dann ist sicher Schluß.

Die angestrebe Lösung war, dass ein einzelner PC das Programm von der dbox holt und dieses seinerseits ins Netzwerk streamt. Alle weiteren PCs holen sich den Stream vom ersten PC und nicht von der dbox. Damit ist die mögliche Anzahl der gleichzeitigen Clients sicher deutlich höher.

Und so sollte es funktionieren:


1. An der Dbox den SPTS-Mudus aktivieren: Einstellungen -> diverse Einstellungen -> SPTS-Mode Treiber laden (ein).

2. Auf allen Rechnern VLC 0.8.0 installieren. (Andere Versionen funktionieren eventuell auch.) (Download)

3. An der dbox auf das gewünschte Programm zappen. (z.B.: MGM)

4. An der FB die rote Taste -> technische Informationen -> PMTpid: 0x0066, Vpid: 0x02ff, Apid(s): 0x300, 301

5. 66, 2ff und 300 merken. (Andere Sender haben andere Pids.)

6. Am ersten PC (Server) vlc.exe mit diversen Parametern starten.

7. An "beliebig" vielen, weiteren PCs (Clients) vlc.exe mit Parameter starten.

8. In der Küche, im Schlafzimmer und auf der Terrasse nach Herzenslust Fernsehen.

Der VLC-Aufruf für den Server:
C:\Programme\VideoLAN\VLC\vlc.exe http://192.168.0.202:31339/0,0x66,0x2ff,0x300 :sout=#duplicate{dst=std{access=udp,url=192.168.0.100:1234},dst=std{access=udp,url=192.168.0.15:1234},dst=std{access=udp,url=192.168.0.225:1234}}
(Das ist eine einzige Befehlszeile, auch wenn hier sicher ein Zeilenumbruch dargestellt wird.)
Das Fettgedruckte muss individuell angepasst werden.

Das sendet den Stream an drei Clients: 192.168.0.100, 192.168.0.15 und 192.168.0.225.
Die Liste kann natürlich auch bei gleicher Syntax länger sein.
192.168.0.202 ist hierbei die IP der dbox.
66, 2ff,300 ist das PMT-, V- und das Apid des laufenden Programmes.
Der Server kann auch gleichzeitig ein Client sein, dazu muss er in der "IP-Liste" aufgeführt werden und vlc zusätzlich auch als Client aufrufen.
Alternativ kann zur Wiedergabe am Server auch dst=display, statt dst=std{access=udp,url=192.168.0.100:1234}, verwendet werden, dann muss am Server kein weiterer vlc zur Wiedergabe gestartet werden.

Der VLC-Aufruf an den Clients:
C:\Programme\VideoLAN\VLC\vlc.exe udp://
Nicht jeder Client, muss gestartet werden, es funktioniert auch wenn nur einer oder zwei empfangen, auch wenn an drei oder mehr gesendet wird.

Der Stream wird nirgends gespeichert, ein Timeshift geht mit diesem Beispiel nicht.

Falls die Verteilung einer anderen Sendung gewünscht wird, so ist der vlc am Server mit den entsprechenden neuen Pids neu zu starten. Die Clients müssen nicht neu gestartet werden, die setzen die Wiedergabe einfach fort, sobald wieder etwas vom Server gesendet wird.

Der Server könnte auch an die Multicast-Adresse (239.10.20.30, für alle Netzwerke identisch) senden, dann müsste man nicht jeden Client einzeln auflisten, aber dann wird auch an die dbox gesendet und das geht von deren 10 MBit halfduplex Bandbreite ab, auch wenn sie den Stream nicht entgegen nimmt. Das führt dazu, dass eine ruckelfreie Übertragung praktisch ausgeschlossen ist.

Alternativ und eigenlich eleganter, kann am Server auch http, statt udp benutzt werden.
Der Unterschied ist, dass der Server nicht den Stream an eine vordefinierte Liste von Clients schickt, sondern für beliebige Clients den Stream zur Abholung bereit stellt.
Das entbindet von der Notwendigkeit die Client-IPs beim Server zu benennen und entlastet das Netzwerk, da nicht alle gelisteten Clients beliefert werden, egal ob sie die Wiedergabe gestartet haben oder nicht. Der Stream geht dann nur zu den Clients, die ihn auch tatsächlich abrufen.

Der VLC-Aufruf für den Server:
C:\Programme\VideoLAN\VLC\vlc.exe http://192.168.0.202:31339/0,0x66,0x2ff,0x300 :sout=#duplicate{dst=std{access=http,mux=ts,dst=0.0.0.0:1234}}
(Das ist eine einzige Befehlszeile, auch wenn hier sicher ein Zeilenumbruch dargestellt wird.)
Das Fettgedruckte muss individuell angepasst werden.

Der VLC-Aufruf an den Clients:
C:\Programme\VideoLAN\VLC\vlc.exe http://192.168.0.108:1234
192.168.0.108 ist hier die IP des Servers, 1234 ist der Port, der auch beim Server benutzt wird, statt 1234 kann auch am Server und am Client ein anderer Port benutzt werden.

Die letzte erfolgreich getestete VLC-Version ist 0.8.6d.

Gruß Frank

Die Bestimmungen von GEZ, Gema, Premiere usw. sind zu beachten!

Diese Funktion wurde von x3r0 in JackTV umgesetzt, so dass man sich das manuelle Eingeben der langen Befehlszeilen sparen kann und ein Umschalten per JackTV auch möglich ist. JackTV war anfangs Freeware. Die Weiterentwicklung von JackTV heißt XLiveGrabber und ist Shareware.

Ebenso hat arno diese Funktion auch in neutrinoTV eingebaut.
arno hat geschrieben:Das geht indem Du in neutrinoTV unter Settings->VLC die Options-Datei "EnableHTTPStreamingServer.nvo" lädst. Du kannst auch mal mit einem Texteditor in die Datei reinsehen, da ist das nochmal erklärt. Dann in neutrinoTV ein beliebiges Programm wählen und "Go Live" drücken. Jetzt kannst Du aus dem Netz mit anderen VLCs darauf zugreifen (Port 1234).
Nachtrag:
Da seit Erstellung dieses Beitrags einige Erkenntnisse hinzukamen, habe ich ihn schon mehrfach überarbeitet. Hier sei noch erwähnt, dass mittlerweile nicht mehr alles auf meinem Mist gewachsen ist, sondern ich auch viel von x3r0 und von arno gelernt habe.
Hier meinen Dank an die Beiden.
Zuletzt geändert von Pedant am Di 22 Jan 2008, 19:36, insgesamt 7-mal geändert.
Sagem 1xi + HDD Kabel, JtG-Team Image v2.4.6 (19.12.2015), avia600vb028, ucode int., cam_01_02_105D
Coolstream Neo, FW 2.10 (leider kaputt)
Win 10 Pro x64, i7 920, 12 GB, SSD
u-Grabber 0.2.7.6-> TS -> PX 0.91.0.08 -> IfoEdit 0.971 -> ImgBurn 2.5.0.0 -> DVD-R

Benutzeravatar
jmittelst
Co-Admin
Co-Admin
Beiträge: 11013
Registriert: So 16 Nov 2003, 13:42
Wohnort: Schildgen (Bergisch Gladbach)
Kontaktdaten:

#2 Beitrag von jmittelst » Di 09 Nov 2004, 5:50

Wie immer, wenn Du Dir "mal was anschaust", exellente Arbeit!
Danke!
cu
Jens
VU+ Ultimo 4k
VU+ Duo²
VU+ Solo²


[Zitat]Es gibt 2 Dinge, die unendlich sind. Das Weltall und die Dummheit der Menschen. Beim Weltall bin ich mir aber nicht so sicher...[/Zitat]
Vorsicht! Lesen kann zu Bildung führen! Links, Suchfunktion, Wikis und Google deshalb nur mit Bedacht nutzen!

Massa
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 92
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Bodensee

#3 Beitrag von Massa » Di 09 Nov 2004, 13:49

Super, muss ich gleich heute abend einmal ausprobieren :D !

die folgende Frage hatte ich vor einiger Zeit schon mal im Zusammenhang mit JtG gestellt; vielleicht ist das ja inzwischen auf der Box möglich...

Beim vlc-Server muss ja für den Stream von der Box die vpid und apids angegeben werden.
Gäbe es da nicht auch die Möglichkeit zu sagen, "nimm' das, was gerade läuft", d.h. ohne explizite Angabe der vpid und apids?
Die Box müsste dann selber herausfinden, auf welchem Kanal er gerade läuft und welche Audiosignale es gibt.
Ginge das?

Wenn das geht, würde ich gerne noch einen Schritt weitergehen und eine "nichtblockierende und dauerhafte" URL angeben.
Was ich damit meine?
Streaming, bei dem ich auf der Box nach Belieben umschalten kann und die Streamingausgabe synchronisiert sich immer wieder auf die geänderten vpids und apids...

Damit könnte man dann auf wirklich überall Fernsehen (zwar überall das gleiche Programm, aber immerhin könnte man dann auch zappen :-) )
dbox2: Philips (SAT), 2x, Avia 600 (ENX)
PC: Intel P4 2,8GHz FSB800 - 1GB RAM - Windows XPSP2 Pro Eng.

Benutzeravatar
Pedant
admin-c
admin-c
Beiträge: 4285
Registriert: Mo 04 Aug 2003, 16:22
Wohnort: Bad Vilbel
Kontaktdaten:

#4 Beitrag von Pedant » Di 09 Nov 2004, 14:17

Hallo Massa,

für eine nicht allzuferne Zukunft, stelle ich mir ein Tool vor, dass am Server den VLC startet und am Laufen hält.
Das Tool liest die Services und Bouquets von der dbox, kann dann selbst Zappen, aber auch auf Zappen reagieren, man kann eine Liste der Client-IPs hinterlegen und ankreuzen, welche mitspielen dürfen.
Am Client kann man die Wiedergabe wahlweise mit Dateierzeugung (Timeshift/Aufnahme) oder ohne starten. Die Übertagung funktioniert auch an eine andere dbox.
Und so weiter. Da wird sicher der Eine oder Andere noch Wünsche haben.
An Ideen mangelt es nicht, und die Vorraussetzungen sind eigentlich alle schon da, man muss sie nur zusammenfassen.

Abgesehen davon, habe ich leider nur Erfahrungen mit TurboPascal, cmd und Javascript und die scheinen mir nicht die geeignete Plattform zu sein. Naja, Unwissenheit ist keine Schande, nichts lernen wollen aber schon.

Gruß Frank
Sagem 1xi + HDD Kabel, JtG-Team Image v2.4.6 (19.12.2015), avia600vb028, ucode int., cam_01_02_105D
Coolstream Neo, FW 2.10 (leider kaputt)
Win 10 Pro x64, i7 920, 12 GB, SSD
u-Grabber 0.2.7.6-> TS -> PX 0.91.0.08 -> IfoEdit 0.971 -> ImgBurn 2.5.0.0 -> DVD-R

Antworten