First what is a RTMP server and even before that what is RTMP?
RTMP (Real-Time Messaging Protocol) is an application-level protocol owned by Adobe. It was originally designed for delivering on-demand media and live media (i.e live audio, video, and data) over the Internet between a Flash player and RTMP Media Server. For example we have the HTMP protocol, that is the sites which you can see on the browser, so the HTMP protocol is for website. While the RTMP is for media, it allows media files, like video, audio, images which can be easily be transferred or streamed by other users.
So the a rtmp server is a normal server, or a vps, which has a rtmp software which can then be used to transfer this media files.
Now the important thing on all this is what is this software? And the main softwares that create the RTMP are
1- Flash Media Server, now changed to Adobe Media Server.
3- Wowza, now called, Live Streaming Engine.
And these are the 3 main RTMP servers or softwares, there are other like Nginx, but not so well known and not really used for production purposes.
How it all started, the RTMP?
It started with Adobe, they the ones who created this software with flash media server, it is a high quality software and it is very expensive, $4500 for the license.
But we must explain the issues with the RTMP, it is very popular some years ago, 2010 and about, every one wanted to make video chats, the problem is that flash is going to be disabled at the end of this year 2020 and video chats with flash will stop working.
But the RTMP has one incredible advantage, it is very fast between servers, a delay of 1 or 2 seconds of latency.
So RTMP will not go out soon because we can use for live streaming from the broadcaster to the server, using the RTMP and then on the server it is distributed on an.y device using instead of RTMP using HLS, which means HTTP Live Streaming.
The latency now is 20-25 seconds, so it cannot be used for video chats but is perfectly alright for live streaming and ondemand video streaming
Then we have Red5, which now has two versions the paid version called Red5 Pro and it is also expensive, difficult to manage but can be used for live streaming and for video chats.
Hosting Marketers uses the free open source software on all our servers, and it was the first shared hosting offering this service.
It is still used on some video chats but not sure what will happen after 2020….
Then we have Wowza, which is the one we mostly use on our RTMP servers, it is very stable, easy to manage and very high quality.
There are many reasons for using Wowza to provide HLS streaming services compared to a generic web server. You’ve essentially listed them yourself, though to provide a few specifics; Wowza’s HLS implementation includes robust DRM functionality, timed data events via ID3 tags, alternative audio tracks. More are listed here.
I would recommend reading our Quick Start Guide which covers the concepts involved. For more detail around the HLS capabilities I’d suggest you try our rtmp free trial account, on our site.
We also use it for live streaming on sports and Church services with live streaming, we adjust the server to reduce the latency, wecan reduce to 5-6 seconds by making some adjustments.
HTTP Live Streaming (HLS) is here to stay, it works everywhere, high quality and stability, but latency or delays between the stream and the end user can be 60-90 seconds, if you streaming live events that can be a very big issue, imagine Sports betting? But with Wowza Streaming Engine it is possible to reduce the latency to 3 to 5 seconds. It is not good enough but for now there is no other solution.
Below we have some adjustments that using the Wowza Streaming Engine Manage, we can easily improve, although of course there are some negative components.
This risks inherent of the configuration adjustements are due to smaller chunk sizes may result in playback errors if you fail to increase the number of seconds built into the playlist. If a stream is interrupted, and the player requests the next playlist, the stream may be interrupted when the playlist doesn’t arrive.
Additionally, by increasing the number of segments that are needed to create and deliver low-latency streams, you also increase the server cache requirements. To alleviate this concern, ensure that your server has a large enough cache, or built-in elasticity. You will also need to account for greater CPU and GPU utilization resulting from the increased number of keyframes. This requires careful planning for load balancing, with the understanding that increased computing and caching overhead incurs a higher cost of operation.
Lastly, as chunk sizes are smaller, the overall quality of the video playback can be impacted. This may result into either not being able to deliver full 4K video to the player, or small playback glitches with an increased risk of packet loss. Essentially, as you increase the number of bits (markers on the chunks), you require more processing power to provide smooth playback; without it, you get packet loss and interruptions.
On the details page Properties tab, click Cupertino Streaming Packetizer in the Quick Links bar.
In the Cupertino Streaming Packetizer area, click Edit, and change the values for the following properties:
1- cupertinoChunkDurationTarget- Set the duration of each chunk in milliseconds. The default value is 10000, but the chunkDurationTarget must be smaller to reduce the latency of Apple HLS streams. For a one-second chunk size, set the value to 1000.
2- cupertinoMaxChunkCount- Sets the maximum number of chunks Wowza Streaming Engine stores in the available chunk list. The default value is 10, but for reduced latency streaming we recommend storing 50 seconds worth of chunks. For one-second chunks, set the cupertinoMaxChunkCount to 50; if you’re using half-second chunks, the value should be doubled (100).
3- cupertinoPlaylistChunkCount- Sets the number of items returned to the player in the playlist. The default value is 3, but for reduced latency streaming we recommend returning 12 seconds of data to the player. This prevents the loss of chunks between chunklist requests. For one-second chunks, set the cupertinoPlaylistChunkCount to 12; if you’re using half-second chunks, the value should be doubled (24).
B- On the Properties tab, click Customin the Quick Links bar.
In the Custom area, click Edit.
Click Add Custom Property, specify the following custom property settings in the Add Custom Property dialog box, and then click Add:
1- In Path, select /Root/Application/LiveStreamPacketizer.
2- In Name, enter cupertinoMinPlaylistChunkCount.
3- In Type, select Integer.
4- In Value, specify the minimum number of chunks required before Wowza Streaming Engine provides a playlist to the player. The default value is 1, but for reduced latency streaming we recommend requiring a minimum of 6 seconds worth of chunks. For one-second chunks, set the cupertinoMinPlaylistChunkCount to 6; if you’re using half-second chunks, the value should be doubled (12).
Click Save and restart the application to apply the changes.
Real-Time Messaging Protocol or RTMP was developed originally by Macromedia, which then became Adobe. It was a system to implement streaming of video, text and audio over the internet between a flash player and a server with the RTMP setup.
Using fragments between the server and the user, it maintains a stable connection and because of that it has low latency, meaning that there is a very short delay, between the server and the user. The delay is perhaps 1 or 2 seconds.
The RTMP servers available are Adobe Media Server, Red5, Wowza Streaming Engine, Nginx RTMP server and a few more, but this 4 are the most common, although Adobe is very expensive and Red5 is difficult, personally I prefer Wowza RTMP, which has a number of advantages, we will talk about this on another post.
Going back to RTMP, it is a TCP-based protocol which maintains persistent stable connections and allows low-latency communication. To deliver streams smoothly and transmit as much information as possible, it splits streams into fragments, and their size is negotiated dynamically between the client and server.
RTMP servers are ideal for live streaming but also for Ondemand video streaming, it is also a necessary component for live video chats.
RTMP Server, how it works
The server must be setup with a media server, like Adobe or Red5, then the video stream connects to the RTMP installed on the server, the video stream could be a laptop with a software installed, this software is an encoder, there are a number of them, OBS Studio, but the most common is the Adobe, FMLE, which you can download free at http://hosting-marketers.com/flashmedialiveencoder_3.2_wwe_signed.msi (for windows computers, Mac computers you can download directly at Adobe site.)
On the encoder you enter the server RTMP, which would be something like this:
Then you connect and start the broadcast. this stream will go directly the RTMP server and you can now setup a player for your users, if you using a RTMP player you will need to use a flash player, but using Wowza Streaming Engine on the RTMP server it converts the stream to a HLS protocol which can be used on many other platforms as well, like smartphones and HTML5 Players. Although the HLS has the latency issue because of the flash players end of live it is nearly impossible not to use it. Nowadays, with a good configuration you can reduce the latency to 3 or 4 seconds.
So we have, YOU on your laptop with a camera and an encoder >>> your internet connection and the RTMP Server connection >>> and finally the player on your site broadcasting your live event. Or your video files.
1- Live streaming, which as it says it is for live streaming or live broadcasts, perfect for broadcasting live events, sports, church events, weddings.
2- TV Station, perfect for TV stations having the option to upload videos and create schedules and playlists schedule at a predetermined time. At any time this schedule can be interrupted for live broadcasts.
4- Live Camera Restream, used for IP cameras, the output of IP camera is normally RTSP or RTP ( example: rtsp://[camera-ip-address]:554/axis-media/media.amp ).
This format RTP or RTSP is useless for players, by using our wowza server and the Live Camera Re-Stream we convert this signal for playback on all supported player technologies. Some cameras are not supported, please open a ticket and email us the rtsp or rtp for us to check if it works on our wowza servers.