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.
You need first to decided what you want to do, live streaming? Video Streaming? then order the appropriate Wowza package at
I suggest you contact us with your requirements, because the bitrate on the packages are not very high and if you going to stream high quality videos you will need higher bitrate, we will customize your package by increasing the bitrate and reducing the number of users allowed.
The formula we use is as below:
package bitrate x viewers allowed = A
A / bitrate requested = new number of viewers
If your wowza package that you want to order is Wowza 300 you allowed 512kbps.
so you will have 2000kbps bitrate and 77 max. viewers.
Now for the instructions how to Stream to Roku using Wowza streaming engine.
So lets say you want to stream videos, you will need to order Ondemand Streaming. After you order and agree on the bitrate upload a few videos files in MP4 format and slightly below the bitrate allowed. Your HLS URL for any of your videos would be something like this
you will have your HLS URL from your wowza control panel, on it should click on “Media Player” and you will have on the left a player and on the right the code for the player, copy it to a notepad and find on it the “sourceURL” that will be it for the sample file. replace the sample file with the name of your uploaded video. For instructions on setting up the ondemand streaming check the tutorial here.
Now lets go basic instructions for packaging and uploading your application and creating a private channel on a Roku set-top box to stream videos from our Wowza to the Roku device.
If your stream only uses AC3 surround sound audio, set the Roku Audio mode (found in Settings > Audio > Audio) to Auto. If Audio is set to Stereo and the stream only contains AC3 audio, users unable to playback surround sound will not hear audio in the stream. Viewers can identify if their HDMI device can decode Dolby Digital AC3 surround sound by looking for a (DD) or (DD+) label next to the Autosetting. To increase accessibility of your stream, make sure you have both stereo and surround sound audio tracks in your stream.
Navigate to the Packaging Your Application section of the Roku SDK documentation, and then follow the instructions to set up a DevID and Password. These credentials are used when packaging your application before uploading to a channel.
Unzip the RokuSDK/examples/zips/simplevideoplayer.zip example and edit the simplevideoplayer/source/appMain.brs file as follows:
Comment out the following lines using an apostrophe (‘) character:
Uncomment and modify the following lines so that the urls line matches the one below:
' a test stream from Wowza
urls = ["https://11234566777778.streamlock.net:1937/8XXX/mp4:video.mp4/playlist.m3u8"]
qualities = ["SD"]
streamformat = "hls"
title = "my video file"
srt = ""
Note: To play your own content, change the urls value to the playlist URL of your content.
Select all files in the simplevideoplayer folder and compress these files (not the folder itself) into a zip file to upload to the Roku box.
Follow the Run the package Utility instructions in the Packaging Your Application section of the Roku SDK documentation to upload your package zip file and register your application to the Roku player. After successfully uploading the application to the Roku box, the application will show up as a channel.
After completing these steps, a prompt to run your application appears on your Roku box. After the application is running, you can refer to the Roku SDK documentation for information on how to set up a private channel and make it accessible to users to subscribe.