Ffmpeg simple RTMP streaming

ffmpegrtmpstreamingtcptranscoding

I am trying to launch up a rtmp transcoder server using ffmpeg; that receives udp MPEG-TS streams as input, transcodes it; and generates an rtmp output to a URL, that can be accessed by users to receive and play the rtmp stream. All these are expected to be performed in a LAN and the output be accessed by all users.

1) First I don't know where the URL should point to. Is it enought to specify the IP of the system and some optional port? Is it neccessary that a program should be listening on that port?

2) How I can play the stream on the URL?

I use a linux ubuntu machine whith IP=10.1.1.229 and I want to transcode multicast stream on this URL: udp://@224.10.1.1:2001.

here is the command used to transcode input stream and generate rtmp url "rtmp://10.1.1.229:2020".

ffmpeg -y -f mpegts -i "udp://@224.10.1.1:2001" -re -vcodec libx264 -maxrate 700k -r 25 -s 640x360 -deinterlace -acodec libfaac -ab 64k -ac 1 -ar 44100 -f flv "rtmp://10.1.1.229:2020"

and here is the command by which I am trying to play rtmp stream:

ffplay rtmp://10.1.1.229:2020

Any guidance would be helpfull. Thank you.

Best Answer

ffmpeg does not (yet) have the RTMP server functionality. What it does, when it outputs to the rtmp URL is that it outputs the stream, which is an input feed for RTMP servers (like Wowza or similar). Shortly speaking, ffmpeg feeds the real RTMP server with the input which is then being broadcast by that RTMP server.

Related Topic