Page 1 of 1

Multicast streaming CLI headless , how to tell if its working?

Posted: 18 Jun 2016 05:40
by chowpay
Hi,

I'm new to VLC but i'm trying to use it to test some networking things. My problem is its all command line so im not sure how to tell if its working. Here's my setup:

I setup 3 machines in aws (ubuntu) overlaying multi gre tunnels between the 3 machiens. They are all talking over multi cast and the multicast is working correctly so i'm sure the networking layer is fine.

MachineA is currently sending a stream. Here's the command i'm running:

Code: Select all

vlc -vvv file:////home/ubuntu/jellyfish-5-mbps-hd-h264.mkv --sout '#rtp{access=udp,mux=ts,dst=232.43.211.234,port=1234,sap,group="Video",name=Jellyfish}' :sout-all —loop
MachineB is currently receiving the stream. Here is the command I am running:

Code: Select all

vlc -vvv rtp://@232.43.211.234
There is a ton of code output from the screen but how do I tell if MachineB is actually receiving the multi cast stream or even if A is sending it out correctly. I don't really see any errors. Is there a log I should tail on both machines?

Thanks in adv
- N00b

Re: Multicast streaming CLI headless , how to tell if its working?

Posted: 18 Jun 2016 11:07
by kmf31
Il believe the option "access=udp" is too much in the MachineA command line if you are using rtp (it would be okay with "#std" instead of "#rtp" for pure udp streaming). I don't know the other options (sap,group="Video",name=Jellyfish) but they seem to be (at least for a test) not essential to get rtp running. However with the "access=udp" option there is an error message.

For the MachineB-command line you use it should work on MachineA itself (by simply showing the video) but maybe on MachineB you should better use:

Code: Select all

vlc -vvv rtp://<IPnumber_MachineA>@232.43.211.234
where <IPnumber_MachineA> is the IP number of MachineA to clarify from which machine the stream is coming (but I am not sure if this is necessary, you can try).
In case you have several rtp streams using different ports you should add ":1234" (or the appropriate port number) for the port behind the multicast address (same for udp streams with udp://... ).

To get a list of all command line options of vlc with some explanations simply do:

Code: Select all

vlc --longhelp --advanced --help-verbose > vlc_help_file
to write them in the file "vlc_help_file".

To redirect vlc messages (which are very detailed and long due to "-vvv") to a file add simply behind each command line " 2> logfile" which copies them in the file "logfile".

Re: Multicast streaming CLI headless , how to tell if its working?

Posted: 21 Jun 2016 02:44
by chowpay
Hey thanks man,

So I took your advice and removed a tag when I was able to test this out again, Im pretty sure that vlc is not publishing the multicast correctly. a little background I am not using eth0. Heres the link I created :

Code: Select all

mcbr-foo Link encap:Ethernet HWaddr 0a:d7:56:eb:a8:be inet addr:172.16.0.3 Bcast:0.0.0.0 Mask:255.255.255.0 inet6 addr: fe80::d8d5:41ff:fe20:b5bc/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:8963 Metric:1 RX packets:53345 errors:0 dropped:0 overruns:0 frame:0 TX packets:49784 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5246344 (5.2 MB) TX bytes:5176748 (5.1 MB)
I think that this command:

Code: Select all

-vvv file:////home/ubuntu/jellyfish-5-mbps-hd-h264.mkv --sout '#rtp{mux=ts,dst=232.43.211.234,port=1234,sap,group="Video",name=Jellyfish}' :sout-all —loop
Tries doesnt use the correct interface.
I tested this by doing a tcpdump from Machine B. If I omping from MachineA or C I can see the multicast traffic show up on MachineB's dump. But when I try to publish vlc using the command above I get no traffic.

Code: Select all

172.16.0.4 : waiting for response msg 172.16.0.5 : waiting for response msg 172.16.0.4 : joined (S,G) = (*, 232.43.211.234), pinging 172.16.0.4 : unicast, seq=1, size=69 bytes, dist=0, time=0.238ms 172.16.0.4 : multicast, seq=1, size=69 bytes, dist=0, time=0.243ms 172.16.0.5 : waiting for response msg 172.16.0.4 : unicast, seq=2, size=69 bytes, dist=0, time=0.312ms
Here's my command for TCP dump:

Code: Select all

tcpdump -v -i mcbr-foo

Re: Multicast streaming CLI headless , how to tell if its working?

Posted: 21 Jun 2016 15:37
by Rémi Denis-Courmont
VLC does not care about the interface. It just sends IP packets to an IP address that just happens to be multicast. The TCP/IP stack devices how that gets routed.

On Linux, you can use the --miface option to force an output interface though.