How to make a rtmp server?

The best 3 ways to make a RTMP server.

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.

2- Red5

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….

You can read more about red5 on our old blog post “What is the use of Red5

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.

Church Live Streaming

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.

RTMP Servers

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:

fmle encoder
click on the image to see larger size

rtmp://server_IP/live/stream_name

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.

How to setup Roku with Wowza Streaming Engine and Hosting Marketers

You need first to decided what you want to do, live streaming? Video Streaming? then order the appropriate Wowza package at

https://hosting-marketers.com/wowza-hosting/

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.

https://hosting-marketers.com/wowza-hosting/

512 x 300= 153600

Now if you ask for 2000kbps bitrate:

153600 / 2000= 77 viewers

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

https://11234566777778.streamlock.net:1937/8XXX/mp4:video.mp4/playlist.m3u8

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.

Notes:

  • You may need to configure your stream as a multi-bitrate stream as outlined in How to create Apple App Store compliant streams (audio only rendition).
  • If you experience playback problems, see How to switch between absolute and relative URLs in Apple https Live Streaming playlists. This article describes how to switch back to using absolute paths for iOS playlists. This has been fixed in recent Roku firmware updates.
  • 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.

 

  • Setting up the Roku device and Roku SDK

    1. Get your Roku running and associate it with an online Roku account.
    2. In your online account, sign up for the developer program, and then download the Roku SDK (Software Development Kit) and unzip RokuSDK.zip.
    3. 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.
    4. Unzip the RokuSDK/examples/zips/simplevideoplayer.zip example and edit the simplevideoplayer/source/appMain.brs file as follows:
      1. Comment out the following lines using an apostrophe () character:
        'urls = ["https://video.ted.com/talks/podcast/CraigVenter_2008_480.mp4"]
        'qualities = ["HD"]
        'StreamFormat = "mp4"
        'title = "Craig Venter Synthetic Life"
        'srt = "file://pkg:/source/craigventer.srt"
      2. 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.
    5. 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.
    6. 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.

testing a red5 live streaming rtmp, plus creating a player for the rtmp

We created an app for live streaming here.

Now we going to test it and create a player code so we can start streaming to our site.

Do you have fmle installed on your computer? You need to download it from adobe.

Lets test it first, go to

http://209.95.39.220/test/

enter the rtmp of your app. the rtmp is

rtmp://server IP/app

so:

rtmp://RED5_SERVER_IP/live221

Enter this URL on the long string and click connect, now click “Publish” your camera will start,  and now click “Play” if the 2 players show the same thing you are on. Everything is good.

OK, now we have to work on “stream name”. We talked about rtmp, and we tested it, the testing site if you go back to it

http://209.95.39.220/test/

it has a stream name, “testing” this must be on both the publishing and on the player.

so it must be on the FMLE and on the player code.

fmle

(click on the image to have a better view)

the FMLE on the left you have your settings, frame per second, bitrate, your camera, format.

on the red5 server your bitrate should be about 320kbps higher then that you need a lot of RAM and server resources.

lets configure the fmle as the image shows.

on the right on the FMS URL enter the rtmp and on the stream enter your chosen stream name, in this case I entered “live” see image.

click connect, and then below click “Start”

you now streaming to your server.

 

Now creating a player for this stream. Go to

http://www.hosting-marketers.com/generator/

at the bottom on the “Streamer” enter the rtmp:

rtmp://RED5_SERVER_IP/live221

and on “Stream / File Name” enter the stream name, which we used on the FMLE, “live”

Click  “Generate Code!”

Take the “Preview & Embed” code, paste on your site and that’s it.

You can also use an image on the player, it will show before the user click to play,  enter the image URL on “Overlay Poster”

Red5 托管

Red5是一个类似于Adobe的Flash媒体服务器或者Wowza媒体服务器的媒体服务器。媒体服务器用于实况转播,视频聊天,会议直播,视频流,也被称为按需流。

使用媒体流服务器的主要好处是:

终端使用者(客户)的好处:

该服务器能够检测客户的连接速度并自动提供最佳视频流。Red5 托管

播放开始较早,用户可以跳至视频的任何部分,而不必等待整个文件下载。

提供者(站长)的好处:

广播直播活动的能力。

提供高级互动内容的能力,如直播聊天,视频会议等。

视频播放更有效率,需要较少的服务器资源和数据传输。

视频文件不是被下载到客户电脑,所以减少内容被盗取的机会。

详细的统计数据,诊断等
red5 托管

自2008年以来,Hosting Marketers就开始提供red5托管和wowza托管,我们拥有长期的经验而且我们的客户支持团队随时待命帮助您设置您的视频聊天或您的直播活动。

如果您需要更多信息,
请通过https://hosting-marketers.com/customers/submitticket.php?step=2&deptid=2 联系我们

或者直接通过http://hosting-marketers.com/ 下订单

How to create a page for your live broadcasts?

Many customers have asked how to create a web page for the player with the live broadcast, or what to put on it. We done a demo page with what we think is necessary, first the player in a good position, perhaps in the center, with an image related to your broadcasts. Then perhaps a box for live text chat, not live video chat, because it would interfere with the broadcasts, but it is important to let your viewers chat and give a feedback.

Then we need some information, how many people are viewing and past statics, we used a script from Infosniper.net, it is a commercial product but costs us $8 for a 10K queries. Not much.

To make the page more attractive we put a globe from revolvermaps, which is free, then I suggest perhaps you can put some ads on the site? we added banner from Hosting Marketers!

Please visit the demo page at:

http://hosting-marketers.com/player/