DEV Community

Cover image for How to Set Up a Free RTMP Server with Open Source Red5
Penelopa
Penelopa

Posted on • Originally published at red5.net

How to Set Up a Free RTMP Server with Open Source Red5

In this post, we’ll guide you through setting up an RTMP server for free using the open-source Red5 software. This tutorial covers downloading the code from GitHub, installing it, hosting it yourself, and exploring the possible applications of using a Red5 RTMP server. Finally, we’ll discuss the advantages of upgrading to Red5 Pro for advanced capabilities, as well as Red5 Cloud, our fully hosted solution for ultimate ease and scalability.

Part 1: Setting Up Your Free RTMP Server with Open-Source Red5

There are two options: either clone the repo and build it or download a pre-built archive from the GitHub release notes.

Step 1: Clone Red5 from GitHub

The open-source version of Red5 is freely available on GitHub. Follow these steps to download it:

  1. First, make sure you have Java JDK 11 and Apache Maven installed. Red5 is built in Java and uses Maven for its build system.
   java -version
   mvn -version
Enter fullscreen mode Exit fullscreen mode
  1. Open a terminal or command prompt and clone the Red5 repository:
git clone https://github.com/Red5/red5-server.git
Enter fullscreen mode Exit fullscreen mode
  1. Navigate into the cloned directory:
cd red5-server
Enter fullscreen mode Exit fullscreen mode

Step 2: Build the Red5 Server

  1. Run the Maven build process to compile the Red5 server.
mvn clean install -P assemble
Enter fullscreen mode Exit fullscreen mode

If the build completes successfully, you’ll find the necessary files in the target folder. The build will be packaged in both zip and tar.gz archives.

  1. Extract one of the archives to where your Red5 server distribution will be deployed.

Step 3: Start the Server

This assumes that the archive has be extracted to your deployment directory.

  1. Run the Red5 server by navigating into the deployed location and using the startup script.
./red5.sh # for Linux or Mac
red5.bat # for Windows
Enter fullscreen mode Exit fullscreen mode

You should see console output indicating the server has started successfully, typically on localhost:5080.

  1. To test if your RTMP server is live, open your web browser and go to http://localhost:5080/. You should see the Red5 landing page.

Step 4: Configure RTMP Applications

Red5 supports RTMP out of the box. You can now create and configure RTMP applications. In the webapps directory, add a new directory for your application (e.g., live), and use the default settings for simple RTMP streaming.

Step 5: Test Your Stream

As an easy way to test, you will want to create an RTMP stream. We recommend using OBS to publish a stream, and then use VLC to watch it.

How to Generate an RTMP Stream in OBS and Watch It in VLC

Once your Red5 RTMP server is up and running, you can create a live stream in OBS (Open Broadcaster Software) and view it using VLC Media Player. OBS is a free, open-source tool for streaming and recording, making it ideal for this purpose. Here’s how to set it up:

Step 1: Configure the OBS Stream Settings

  1. Download and Install OBS: If you haven’t already, download and install OBS from obsproject.com.

  2. Set Up the Stream:

– Open OBS and go to Settings > Stream.

– Set Service to “Custom…”

– In the Server field, enter your Red5 server’s RTMP URL. By default, it’s usually rtmp://localhost/live.

– In the Stream Key field, enter a stream key of your choice, such as testStream. This key will be used to identify the stream URL later in VLC.

Your final RTMP URL will look something like this:

rtmp://localhost/live/testStream
Enter fullscreen mode Exit fullscreen mode
  1. Adjust Output Settings:

– Go to Settings > Output.

– Under Output Mode, choose Simple and set the Video Bitrate and Audio Bitrate as needed.

  1. Add a Source:

– In the main OBS window, under Sources, click the + button and add a source (such as Video Capture Device if you want to stream from a webcam, or Display Capture to stream your screen).

  1. Start Streaming: Click Start Streaming in OBS. The stream is now being sent to your Red5 RTMP server.

Step 2: Watch the RTMP Stream in VLC Media Player

  1. Open VLC Media Player: If you don’t have VLC installed, download it from videolan.org.

  2. Connect to the RTMP Stream:

– Open VLC, go to Media > Open Network Stream….

– In the Network URL field, enter the RTMP URL of the stream. Using the example above, it would be:

rtmp://localhost/live/testStream
Enter fullscreen mode Exit fullscreen mode

– Click Play.

  1. View the Stream: VLC will connect to the RTMP server and begin displaying your live stream.

Troubleshooting Tips

– Firewall: Make sure any firewalls are configured to allow RTMP traffic on your server’s IP and port.

– Network Issues: If VLC cannot connect, double-check that OBS is streaming to the correct RTMP URL.

That’s it! You’re now broadcasting live from OBS to your Red5 RTMP server and watching the stream in VLC. This setup can be used for testing or streaming to other RTMP-compatible players and platforms.

Part 2: Possible Uses of a Red5 RTMP Server

An RTMP server provides a reliable way to deliver live video streams. Here are some typical use cases:

– Broadcasting live events: Stream events like concerts, sports, and conferences directly to viewers with low latency.

– Video conferencing: Set up live, interactive video calls.

– Gaming live streams: Allow users to broadcast their gaming sessions in real-time.

– Video surveillance: Use the RTMP server to live-stream video from security cameras.

– Interactive media: Use Red5’s support for WebSockets to deliver chat features, live polling, and audience Q&A.

Part 3: Advantages of Red5 Pro for RTMP and Beyond

While the open-source Red5 RTMP server provides great foundational capabilities, Red5 Pro offers extensive advantages for more complex and scalable solutions.

Key Advantages of Red5 Pro:

  • Ultra-Low Latency Streaming: Red5 Pro supports WebRTC, RTSP, SRT, HLS, and Zixi, offering latency under 500ms, making it ideal for real-time streaming.
  • Scalability: Red5 Pro’s XDN (Experience Delivery Network) architecture supports distributed origin and edge servers, allowing for highly scalable deployments.
  • Adaptive Bitrate Streaming: Red5 Pro dynamically adjusts the stream quality based on user network conditions, ensuring smoother viewing experiences.
  • Multi-Protocol Support: In addition to RTMP, Red5 Pro supports WebRTC, RTSP, HLS, and SRT, making it adaptable to various streaming needs.
  • Interactive Live Streaming: Use Red5 Pro for highly interactive experiences, such as live auctions, fitness classes, and online tutoring, where latency and real-time interactions are essential.

Part 4: Advantages of Red5 Cloud

If you’re looking for a fully hosted, serverless solution that eliminates the need for setup and infrastructure management, Red5 Cloud is a perfect choice.

Benefits of Red5 Cloud:

  • Quick Deployment: With Red5 Cloud, you can launch a streaming service within minutes without managing the underlying infrastructure.
  • Scalability on Demand: Red5 Cloud automatically scales with your audience size, meaning you only pay for the resources you use.
  • Global Reach: Red5 Cloud’s distributed architecture allows for low-latency streaming worldwide, ensuring excellent quality for your audience, wherever they are.
  • Cost Efficiency: As a pay-as-you-go service, Red5 Cloud helps manage costs effectively by scaling up or down based on demand.

Conclusion

Setting up a free RTMP server using open-source Red5 is a great way to get started with streaming. As your needs grow, Red5 Pro provides advanced capabilities for live streaming with low latency, multi-protocol support, and enhanced scalability. And for ultimate ease, Red5 Cloud offers a fully hosted, globally scalable solution.

Whichever path you choose, Red5 has the technology to help you deliver reliable, engaging live video experiences. Schedule time with our team here if you’re interested in learning more about Red5 Pro or Red5 Cloud

Top comments (0)