FFMPEG command to stream video to a Multicast address

I need to stream a video to a Multicast address. I heard using FFMPEG we can stream the content. I used the following command to stream to the multicast address

ffmpeg.exe -i input -vcodec copy -acodec copy -f mpegts -re "udp://239.101.101.1:1234?ttl=1&pkt_size=1316".

But i am not able to view the video in vlc nor in ffmpeg from another system. I need to view the contents from another machine. What mistake am i doing... Please help me with this.


Solution 1:

First you should verify that the UDP packets are reaching you player system.

Is the the player system directly accessible from the transmitter system? UDP packets will be blocked by NAT routers if they are not specifically forwarded to the right machine by adding UDP port 1234 to the forward list.

You can next verify that the player machine receives the packets by listening to the UDP port with (supposing your physical interface is eth0, if not use the one used by your system.)

sudo tcpdump -i eth0 dst port 1234

If the packets are received ok then try to read the log from the player software the check if decoding problems can be identified.

Solution 2:

  • the '-re' flag is applied to input not output, your command won't work as you have it listed.

  • you have your ttl set to 1, that will stop you at the first router, bump it up and see what happens.

This is the simplest way I know to do it.

    ffmpeg -i Plan_9_from_Outer_Space_1959.mp4 -c copy -f mpegts  'udp://239.0.0.1:1234?ttl=13'

Play with mplayer.

    mplayer udp://239.0.0.1:1234