The Red5 Pro Server allows you to build scalable Live Streaming and Second Screen applications.

Built on the Open Source Red5 Server, the Red5 Pro Server is a standalone server distribution that provides all the possibilities from Red5 with the addition of custom Streaming and Second Screen plugins.

Download the Red5 Pro Server Download the latest Red5 Pro Server!

Red5 Pro Server Requirements

Red5 Pro requires Java 8 (v1.8) in addition, there are different packages required depending on your operating system. Please see either this doc for installing on Linux or this doc for installing on Windows. While you can develop against Red5 Pro on Windows, we highly recommend running on Linux for your production environment.

IMPORTANT If you are broadcasting and/or subscribing via WebRTC, you will need a valid SSL certificate.

Server Specification Suggestions

As per standard development practices, we recommend maintainting separate develop and production environments, so your team can test server updates without disrupting your users.

The following are the minimum recommended server specifications for development servers:

  • For WebRTC we recommend an Ubuntu Linux server with a minimum of 2 CPUs and 4GB memory, with 2GB allocated to the Java Heap.
  • For Mobile/RTSP RTSP uses less memory and cpu, so you can develop against a lesser instance, with a single CPU and 2GB memory.

To configure the memory allocated, you will need to modify the red5.sh or red5.bat file and change the JVM_OPTS from JVM_OPTS="-Xms256m -Xmx2g.... If you are running Red5 Pro as a service (per this doc, then modify -Xms2g -Xmx2g -Xverify:none \ accordingly.

Autoscaling or Clustering

A broadcaster uses a lot more cpu and memory than a subscriber (in our load testing, around 10 times more). Because of this, it is highly preferable to use a clustered model - either a standalone cluster, or an autoscale-managed cluster. This will relegate the broadcasters to the origin servers and the subscribers to the edge servers, so that you can more efficiently allocate resources depending on your use case.


WebRTC is very CPU intensive, and with more memory allocated, there is less load on the system CPU. To support 500 concurrent subscribers to a low-def stream, you will want a server with 2 CPUs and 6GB memory, 4GB allocated to java. Increasing the stream resolution, bitrate, or framerate will increase the load on the sever.

You must install and configure an SSL certificate on your instance if you want to publish or subscribe via WebRTC. See this doc for full steps.

Server Optimizations

You can remove some webapps or plugins, or disable features that you aren't using, in order to optimize your server's performance.

Some examples:

  • The only critical webapp (in the {red5pro}/webapps directory is the root webapp. We recommend leaving live and webrtcexamples intact while developing and testing, but these can be removed as well when you go live if you have your own custom webapp.
  • If you are not using the Mobile SDK (or RTSP), you can disable RTSP by modifying {red5pro}/conf/red5pro-activation.xml, and changing <property name="rtsp" value="true" /> to false.
  • If you are not using HLS for playback you can remove that plugin - {red5pro}/plugins/red5pro-mpegts-plugin-*.jar. If you are not using WebRTC, you can remove that plugin as well - {red5pro}/plugins/red5pro-webrtc-plugin-*.jar
  • If you want to quiet the logging, which can eat up resources on a busy server, modify the {red5pro}/conf/logback.xml file, changing all levels to ERROR or OFF (logging levels from most to least are: TRACE, DEBUG, INFO, WARN, ERROR, OFF).

Also note that for optimal performance, you shoud allocate all of the memory that you are using for Java up-front, so set Xms and Xmx to the same value in your red5pro.service file or in red5.sh or red5.bat, depending on how you are running Red5 Pro.

Quick Server Setup

If you are installing on Ubuntu 16.04 or CentOS 7, you can use the Red5 Pro Installer.

After downloading the latest Red5 Pro Server, unzip the distribution into a directory that fits your development requirements.

For example, we have unzipped the distribution in the following locations:

  • On OSX: /Users/username/red5pro-server
  • On Windows: C:/red5pro-server
  • On Linux: /home/username/red5pro-server

Note: You need to have Java and some other plugins, depending on the platform, in order to run Red5 Pro. See Software Dependencies - Ubuntu, Software Dependencies - Centos, or Software Dependencies - Windows.

To start the Red5 Pro server, change the directory to the unzipped location (e.g. /Users/username/red5pro-server on OSX or /home/username/red5pro-server on Linux) and do the following:

  • On OSX and Linux, open terminal and issue: $ ./red5.sh
  • On Windows, double click the red5.bat file

You should notice some output being printed to the terminal/console regarding the startup of Red5 and plugin registry.

Once the console stops printing information, open your favorite browser and navigate to http://localhost:5080. If all goes well your should see the client-side pages that will help walk you through exploring Live Streaming and Second Screen with the default applications provided in the Red5 Pro Server distribution.

Using Webrtcexamples

The Red5 Pro HTML5 SDK examples are included with the Red5 Pro server distribution, located in the {red5pro}/webapps/webrtcexamples directory. In order to use this testbed, modify {red5pro}/webapps/webrtcexamples/script/testbed-config.js line "host": "localhost",, replacing localhost with the URL of your server. If you are testing on a Stream Manager, modify the line "streamManagerAccessToken": "xyz123", replacing xyz123 with your stream manager access token.

Required Ports:

Port Description Protocol
5080 default web access of Red5 Pro/Websockets for WebRTC TCP
443 modified https access of Red5 Pro; secure websockets for WebRTC TCP
1935 default Red5 Pro RTMP port TCP
8554 default RTSP port TCP
6262 websockets for HLS TCP
8081 websockets for WebRTC (severs earlier than 5.4.0) TCP
40000-65535 TURN/STUN/ICE port range for WebRTC UDP

* If you are running a version of Red5 Pro earlier than 5.4.0, then you must add the websocket ports (8081/8083).

* As of release 5.4.0, websockets automatically use the same ports as http/https as defined in red5.properties.

Some Additional Documentation

> Set Up Red5 Pro Server

> Installing Red5 Pro Server on Linux

> Installing Red5 Pro on Windows

> Upgrading Red5 Pro Server

> Running Red5 Pro With SSL

> Java Servers Overview

> Creating Your First Red5 Server Application

> Setting Up Eclipse for Red5 Pro Development

Sign Up!

Sign Up For Red5 Pro!

Don't have a Red5 Pro Account?

Register now to start enabling Live Streaming and Second Screen experiences for your iOS, Android and HTML5 applications.