Ich richte Video-Streaming ein.
Im lokalen Netzwerk gibt es zwei Geräte, die Videos über UDP-Multicast streamen. Einer ist ein normaler Computer mit Linux (Streaming auf 239.220.221.10, Port 9200), der zweite ist ein spezieller DVB-S-Streamer (Streaming auf 239.220.220.32, Port 9200). Es gibt mehrere IPTV-Set-Top-Boxen im Netzwerk, die Streams von beiden Quellen abspielen können. Es gibt auch einige Cisco-Switches für die Multicast-Filterung, aber ich kann ihre Konfiguration nicht überprüfen.
Auf einem anderen Computer (unter Ubuntu 12.04) möchte ich den Stream erfassen, vorzugsweise mit VLC oder FFMPEG. Vom Computer-Streamer (239.220.221.10) funktioniert es, aber vom speziellen Streamer (239.220.220.32) bekomme ich keinen Stream.
Was ich versucht habe
Ich habe versucht, das Problem einzugrenzen und versucht, rohe UDP-Datagramme mit socat und tcpdump zu erfassen. Wenn ich den folgenden Befehl ausführe, erhalte ich ein gültiges Video in der Datei video.dump:
> socat UDP4-RECVFROM:9200,ip-add-membership=239.220.221.10:0.0.0.0 - > video.dump
Wenn ich gleichzeitig tcpdump ausführe, werden eingehende Datagramme angezeigt:
> sudo tcpdump -i eth1
18:00:39.059824 IP 10.1.2.202.41852 > 239.220.221.10.9200: UDP, length 1316
18:00:39.060789 IP 10.1.2.202.41852 > 239.220.221.10.9200: UDP, length 1316
...
Wenn ich versuche, dieselben Befehle für den speziellen Streamer auszuführen (ändern Sie einfach die IP-Mitgliedschaftsadresse für socat in 239.220.220.32), zeigt tcpdump eingehende Datagramme von 239.220.220.32 an, aber die Datei video.dump ist leer.
Was kann der Grund sein, warum socat
die Datagramme, die eindeutig kommen , nicht angezeigt werden?
Update am 4. März 2014:
Ich habe gerade herausgefunden, dass es im Netzwerk verschiedene IP-Bereiche gibt:
Computer streamer: 10.1.2.202 / 255.0.0.0
"Special" streamer: 192.168.85.5 / 255.255.255.0
Computer on which I am trying to grab stream: 10.1.2.203 / 255.0.0.0
Wenn ich die IP-Adresse des letzten in 192.168.85.x / 255.255.255.0 ändere, kann ich Streams vom "Special" -Streamer abfangen, aber nicht vom Computer-Streamer.
Die Frage ändert sich also zu: Ist es möglich, socat, VLC oder FFMPEG so einzustellen, dass auch Multicast-Streams akzeptiert werden, deren Quelladresse außerhalb des Bereichs der Ethernet-Schnittstelle liegt?
socat
an, der Gruppe 239.220.220.10 beizutreten . Könnte dies das Problem sein?