Membrane broadcasting tutorial

In the tutorial we won't explain how to implement the solution from the ground up - instead, we will run the existing code from Membrane demos.

To run the RTSP to HLS converter first clone the demos repo:

git clone https://github.com/membraneframework/membrane_demo.git
cd membrane_demo/rtsp_to_hls

Install the dependencies

mix deps.get

Take a look inside the lib/application.ex file. It's responsible for starting the pipeline. We need to give a few arguments to the pipeline:

rtsp_stream_url = "rtsp://localhost:30001" output_path = "hls_output" rtp_port = 20000

The output_path attribute defines the storage directory for hls files and the rtp_port defines on which port we will be expecting the rtp stream, once the RTSP connection is established.

The rtsp_stream_url attribute contains the address of the stream, which we will be converting. If you want to receive a stream from some accessible RTSP server, you can pass it's URL here. In this demo we'll run our own, simple server, using port 30001:

mix run server.exs

Now we can start the application:

mix run --no-halt

The pipeline will start playing, after a couple of seconds the HLS files should appear in the @output_path directory.

Then we can play the stream using ffmpeg, by pointing to the location of the manifest file:

ffplay http://YOUR_MACHINE_IP:8000/rtsp_to_hls/hls_output/index.m3u8
Next chapter
RTSP to HLS - pipeline
Next Chapter