FFMPEG - Storm Streaming Server

In this guide, we show how to configure FFMPEG for streaming with the Storm Streaming Server.

Video Tutorial

Introduction

FFMPEG is a popular command-line application for working with media files and streams. It is available for all popular operating systems and, although it lacks a GUI, its capabilities are unmatched. In this tutorial, we will demonstrate how to properly establish a connection with Storm Server and broadcast an MP4 file. FFMPEG can also be used for tasks like restreaming existing streams, accessing IP cameras, etc.

Practice

  1. Broadcasting a Static MP4 File

    The complete command for broadcasting a static MP4 file is as follows:

                            
    ffmpeg -re -i /users/john/Desktop/test.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -f flv rtmp://3b2ec86f:56b47278d863e15@eu-germany01.stormstreaming.com/live/6530cdd463abad1bc9ab78bbfb728aaa52b8e779
                        
  2. Explanation

    • -re ensures that the stream maintains the original frame rate.
    • -i specifies the path to the source (in our case, an MP4 file).
    • -c:v libx264 sets the video codec; libx264 is an open-source implementation of the popular H.264 codec.
    • -preset ultrafast enables the ultrafast preset and reduces delay.
    • -tune zerolatency further reduces latency.
    • -c:a aac sets the audio codec; RTMP requires AAC.
    • -f flv sets the output format to FLV.
  3. RTMP URL & Authentication

    Depending on your setup, you might need to authenticate with the Storm Streaming Server. In such cases, the proper URL should have the following structure:

                            
    rtmp://[server_hostname]/[application_name]/[streamKey]
                        

    If you need to authenticate a stream with the Storm Server, you will need to include the username and password in the RTMP link. The URL structure should look as follows:

                            
    rtmp://[username]:[password]@[server_hostname]/[application_name]/[streamKey]