The best RTMP servers for live streaming

What is an RTMP server?

By Omar Santos

Before we define RTMP let us look at what the letters stand for, RTMP = Real-Time-Messaging– and the P in RTMP stands for protocol, A streaming protocol is a method of transferring data from one screen to another over the internet.
RTMP streaming is a live streaming protocol that offers high-performance transmission of audio, video, and data from an encoder to a server that distributes the signal over the internet.
It can also be defined as an application-level protocol designed for delivering on-demand media and live media over the internet between a Flash player and RTMP Media Server.
How does it work?
First digital audio and video signals go from a camera to an encoder –> Then the encoder compresses and pushes the data to a streaming media server –> The streaming media server then manages and sends the data to a multitude of players and browsers around the world.

How to set up an RTMP server for streaming video

Step-1 connect video signals to an encoder
The first thing to do is connect the video signal to the RTMP hardware or software encoder. Connect your camera cord to the encoder SDI/HDMI cable unit if you’re using a hardware encoder. Also, some encoders connect to cameras via Wi-Fi. If you have such an encoder, all you need to do is to sync the RTMP hardware with your camera signal.
Step-2 create a new live stream in your RTMP server
Step-3 setup your encoding options in your Online video platform(OVP)
Step-4 enable RTMP delivery by setting the RTMP URL
Step-5 enable your stream name and RTMP URL in your encoder under the RTMP configuration settings
Step-6 test your live stream
Step-7 start streaming

The best RTMP servers for live streaming


Ant media server
Gives a free RTMP server and supports various protocols including RTSP, HLS, CMAF, SRT, and more.

Castr
Streaming server software to stream high-quality, low-latency RTMP live video streams
anywhere in the world.

Red5server
Red5server uses the Wowza streaming engine as the best stable option for an RTMP server. It allows live streaming on mobile devices both apple and android.

Create an Online TV Channel

Another interesting use for Red5Server is the option to start TV channels, you can upload videos in mp4 format, organize playlists with time schedule and run a TV station. This same option could be just an On-demand streaming, but with the TV channel or as they call it, TV Station, you upload and stream your videos, BUT at any time, just go live, click on start streaming and you stream live. When the live streaming is finished, the system will go back to your playlist. I think this option is very cool.

RTMP vs HLS


HLS and RTMP are well-known protocols for streaming media content. HLS stands for HTTP live streaming and it is the application layer protocol. RTMP stands for real-time media protocol and it’s the transport layer protocol. The idea of HLS is to stream media over the HTTP protocol, whereas RTMP streams media over TCP or UDP protocols. There’s one variance of the RTMP – RTMPT, which is the application-level protocol, which runs over HTTP.
RTMP offers low-latency streaming with minimal buffering. But unfortunately, RTMP relies on the same Adobe Flash that was mentioned a few paragraphs above. As a result, this tool is no longer supported on web browsers or mobile devices. However, that doesn’t mean RTMP is no longer beneficial. Using RTMP remains vital since it can be transcoded into other formats like HLS, which may be distributed more efficiently.
HLS streaming offers more flexibility and safety, and performances are much more reliable than previous technologies.
The adoption of HLS has been swift because of its easy transmission and compatibility. It is supported on desktop browsers, smart TVs, and mobile devices, including Android and iOS. Its biggest drawback is latency, although there are methods to reduce HLS latency.

Let’s look at the pros and cons of both RTMP and HLS

RTMP Pros:

1. The actual installation process of a Flash Media Server is simple, effective and appears to be trustworthy since the protocol was established 10 years back.

2. RTMP has an exceptional feature where it provides low latency while transmitting live broadcasts.


3. The protocol has the potentiality to transmit audio and video on any formats and rendition.

4. It also supported universally due to its effectiveness in implementing for live streaming.

RTMP Cons:

1. It does not have native support in iOS.

2. RTMP does not work in HTML5, it differs from the HTTP Protocol.


3. The security of delivering video is minimal.

HTTP Pros:

1. HLS is a pocket-friendly protocol which is Compatible on all the platforms and supports HTML5 video player.

2. Helps to stream to reach more viewers and also the safest protocol to scale up the content to a massive base audience.


3. The biggest advantage of HLS is that it has the potentiality to deliver adaptive bitrate streaming where the quality of the content to be expected at a high pixel-rate.

HTTP Cons:

1. HLS has latency which is relatively high when compared to RTMP.

2. The performance of HLS on other platforms is minimal when compared to the performance on iOS only.

Can RTMP servers stream audio only?

Yes, they can. you can select the audio-only setting on the settings icon on live stream and then click quality, then you can choose the option audio-only.

RTMP Server in the era of HTTP video streaming

Given the growing popularity and support of HTTP video streaming, it may be tempting to consider Real Time Messaging Protocol (RTMP) streaming obsolete. But in many cases, working with RTMP server is still very meaningful. As soon as Macromedia first pronounced RTMP with Flash Player 6 in 2002, the brand new Macromedia Flash Communication Server MX (FCS) required to stream the evolving Flash Video (FLV) format, stream was live or VOD.

However, for FCS, licensing costs were high (up to $5,000 per server), and as a result, CDN costs were high than other proprietary streaming formats. Some manufacturers in the industry have called RTMP streaming costs a “Flash tax”. But Flash Player has been a ubiquitous introduction to desktop browsers for well over a decade, much larger than other plug-ins. Though, streaming server technology has traditionally been harder for web developers to implement, and simpler HTTP delivery has mostly been easier and more cost-effective. In 2003, Macromedia enabled Flash Player 7 to support HTTP delivery of FLV files, allowing integrators to use standard web server technology to deploy online video.

So in many ways, RTMP as a VOD transport delivery has not been a requirement for web video for more than a decade. As a video solution architect, I think of business requirements as the leader in most audio video decisions. And still, in 2014, RTMP is the de facto standard for the following use cases:

Publishing live streams from software/hardware encoders: Almost all streaming devices support RTMP to publish to CDN providers and streaming servers. Some native mobile applications also use RTMP libraries to publish live video from their mobile camera.

Near-instant search/playback: One of the benefits of RTMP streaming is its enhanced search capability. With real-time streaming, the player can search anywhere in the video with less buffering than HTTP delivery. However, to enjoy this feature, you need a Flash Player on your desktop and as such, it is not possible in mobile browsers. HTML5 browsers use HTTP domain requests to facilitate faster searching of VOD files.

Content Protection: RTMP Server can facilitate different levels of content protection, from obfuscation to true DRM. RTMP streams are not stored for playback on a desktop browser.

Adaptive Streaming: One of the preferred uses of RTMP is adaptive streaming playback, where we provide the video player with more bitrates and content resolutions, providing the best resolution at the current network speed. Some HTTP adaptive streaming technologies, such as HLS and MPEG-DASH, allow similar delivery, but RTMP may be more responsive to switching one bitrate to another. Unfortunately, there is no standard for HTTP adaptive streaming between HTML5 video-enabled browsers. As such, the Flash-based display of adaptive streaming is still a requirement for adaptive streaming.

Live Streaming Playback: While live streams do not need to be adaptive, compressed video segments apply the same principle to all live streaming playback. For desktop playback within the browser, virtually every live streaming event requires a video player that supports Flash-based rendering and RTMP playback. Apple Safari on iOS natively supports HLS, and luckily, all modern streaming servers, including the Wowza Streaming Engine, support RTMP and HLS compression.

rtmp live streaming

The requirement for a Live Streaming Flash Player will only change if MPEG-DASH appears everywhere as Flash currently. If Internet Explorer 8, 9 and 10 support is required to install live streaming, then RTMP streaming is still required. Also, if you need a delay close to zero in a live stream, then HTTP streaming will almost certainly not meet your needs while RTMP is capable; HTTP mechanisms require that multiple packets be collected on the server before being sent to the video player.

In summary, if your video workflow involves live streaming or any kind of packaged video installation, RTMP is the key to a successful video experience. HTTP delivery has already replaced most Flash VOD installs on video, but HTTP video can’t handle all RTMP video use cases.

Another important setup on Red5 Server is the Python Hosting offered to all hosting customers, with python cpanel hosting the advantage is cheaper and easier to install and run python scripts on a normal hosting. With Python Hosting and rtmp server the customer can really start a webmasters and increase a number of usages to host python scripts or even video chat or live streaming.

As my university professor used to say the computers language for the next 50 years will be python, fast, easier with multiple modules which allow any developer to start an application running python is a few short hours.

What’s better for non-peer-to-peer live streaming, WebRTC or RTMP?

WebRTC or RTMP

It depends on your needs but the industry is moving towards to WebRTC.

RTMP is a widely used TCP based streaming solution. WebRTC is a new solution and usually works over UDP (unless TCP/TLS TURN relay is needed).

If you need streaming to browsers, then WebRTC is a clear winner in 2018 since Flash is fading out from browsers.

Regarding quality: I don’t think that there is a clear winner at this moment. Both of them has some advantages and disadvantages, however WebRTC is an emerging technology and becomes better each year, especially by introducing better codec and eliminating early bugs in browser implementations. WebRTC usually has better quality while RTMP tends to be more stable.

HLS and RTMP are well known protocols for streaming media contents over. HLS stands for HTTP live streaming and it is the application layer protocol. … The idea of HLS is to stream media over the HTTP protocol, whereas RTMP streams media over TCP or UDP protocols.

Regarding costs: WebRTC is a bit more complicated because it need proper TURN server setup to be able to stream to networks behind firewalls and it’s stack is a bit more complex (mandatory DTLS/SRTP encryption)

If you need to build a future proof solution to stream also to browsers then the definitive answer is WebRTC.