Rtmp Server

Most people who stream enjoy using services such as Twitch.tv or Ustream to deliver video to viewers, and that works well enough. But sometimes you want some more control over your stream, or you want other people to be able to stream to you, or you want to stream to multiple places, or any number of things that requires you to have access to an actual RTMP stream from an RTMP server. This guide will cover the very basics of setting up a simple RTMP server on a Linux computer. Don't worry, it's not too complicated, but having familiarity with Linux will certainly help.

Our RTMP server ingest your stream and then encodes and sends it to HLS (HTTP Live Streaming) which then your viewers can watch it anywhere from desktops to mobiles. With our HTML5 Players. Live Streaming for live broadcasts, sport or church events with high quality. On-Demand Video Streaming, upload your videos with dynamic playlists.

  1. Audio go golang streaming h264 video rtsp hls rtmp rtsp-server aac media-server rtmp-server rtp h265 obs-studio rtcp rtsp-relay rtmp-proxy rtsp-proxy Updated Aug 5, 2021 Go.
  2. Everyone is free to join but the very first message sent to this group must pass moderation. If the message is fine (is not spam), following messages will be accepted without human interaction.
  3. Anymix Media Server. Anymix Media Server is a free (as in 'free speech' and also as in 'free beer') Flash Media Server (FMS) or rtmp stremming server. Running in the MS Windows environment. How to install: From the zip: just unzip all the files into a directory you want then launch it. Its a portable and little FMS.
Rtmp server windows 10
A couple things you can do with your own RTMP server that you might be interested in:
  • Stream to multiple external channels
  • Import other people's streams to incorporate for your own purposes (I use it in my casts for multiple camera angles, like in this video I did of a Tribes Ascend broadcast with multiple camera angles)
Alright, so how do you do these kinds of things?
Step 1: Get a Server Box
Believe it or not, RTMP is actually extremely light on system resources. Essentially it just grabs data from the input and forwards it on to the output, simple data transfer. Don't believe me? My RTMP server for a long time was a Raspberry Pi, a $35 mini-computer, sitting under my desk, and it was capable of hosting at least 3 simultaneous streams, and I never even stressed it to see how many more it could handle. So I assure you, even a cheap old box would suffice.
If you don't have your own box, a VPS can also work. I recommend Linode or Digital Ocean as providers. Just make sure you have enough bandwidth...remember that bandwidth usage will be (the size of a stream) * (the number of people uploading + the number of people downloading). So when I have 2 streamers stream to my server, and I download both of them, I can chew up 10GB of bandwidth in 2 hours.
I recommend using Ubuntu for the server software for the sake of ease, but you can obviously use whatever you want. As long as you get the dependencies for nginx somewhere besides apt, you can follow this guide just fine.
Note to Windows users: This guide focuses on using Linux. If you want to use Windows, you can find Windows binaries for nginx with the RTMP module already included here: http://nginx-win.ecsds.eu/download/
Note to Mac users: You can install nginx with the RTMP module via Homebrew: http://brew.sh/homebrew-nginx/
If you are hosting your server in your home, you will have to forward TCP port 1935 to the box...this varies by router, so look up how to set up port forwarding for your router. Also, I recommend using a dynamic DNS service to overcome dynamic IP issues that come up with residential hosting.
Step 2: Installing nginx with RTMP moduleServer
Log into your box, and make sure you have the necessary tools to build nginx using the following command:
$ sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Now a bit of info about nginx (pronounced 'engine-X'). nginx is an extremely lightweight web server, but someone wrote a RTMP module for it, so it can host RTMP streams too. However, to add the RTMP module, we have to compile nginx from source rather than use the apt package. Don't worry, it's really easy. Just follow these instructions. :)
From your home directory, download the nginx source code:
$ wget http://nginx.org/download/nginx-1.15.1.tar.gz
As of this writing, the latest stable version of nginx is 1.15.1. You can find the latest version on the nginx download page.
Next, get the RTMP module source code from git:
Rtmp
$ wget https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/dev.zip
Unpack/unzip them both, and enter the nginx directory:
$ tar -zxvf nginx-1.15.1.tar.gz
$ unzip dev.zip
$ cd nginx-1.15.1
Now we build nginx:
$ ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-dev
$ make
$ sudo make install
And nginx is installed! By default it installs to /usr/local/nginx, so to start the server run the following command:
And to test to make sure nginx is running, point your browser to http://<your server ip>/ and you should get the 'Welcome to nginx!' page.
Step 3: Configuring nginx to use RTMPRtmp Server
Open your config file, located by default at /usr/local/nginx/conf/nginx.conf and add the following at the very end of the file:
Rtmp server iisThis is an extremely basic configuration with a 'live' application that simply forwards the RTMP stream on to whoever requests it. You can play with it some more later. Here's the whole configuration guide, which shows you how to forward streams to other places (such as Twitch), save recordings of uploads, output stats, etc.
Restart nginx with:
$ sudo /usr/local/nginx/sbin/nginx -s stop
$ sudo /usr/local/nginx/sbin/nginx
Step 4: Testing!
Your server should now be ready to accept RTMP streams! Let's try it out.
Create a new profile in OBS, and change your Broadcast Settings thusly:
Streaming Service: Custom
Server: rtmp://<your server ip>/live
Play Path/Stream Key: test
You may be wondering where that play path 'test' came from. Well, we just made it up, just now. You can basically make up any play path and stream to it, and put that path into an RTMP player, and it will play back. For simple purposes, authentication isn't necessary in my experience.
You should now be able to start streaming to your server. If you hit 'Start Streaming' and don't get an error from OBS, that's a good sign.
So how do you watch it? The easiest way to do so is with VLC (v2.1.0 or later). Just Open a Network Stream and enter in rtmp://<your server ip>/live/test as the URL. If it all worked right, then you should now be seeing your stream in VLC!
You now have a working RTMP server! Congrats!
What now?
You can add the stream to OBS itself using the Media source or VLC source, or use something like JWPlayer to play back the RTMP stream on a web site you set up.
You can also use your RTMP server to forward to other streaming services and channels! Underneath the 'record off;' line in your nginx.conf, add the following:

Rtmp Server Aws

push rtmp://<other streaming service rtmp url>/<stream key>
And any stream streamed to that application will be forwarded on to the other service, as well as being served up from the server! You can add multiple 'pushes' to forward the stream to multiple locations.
FAQ
Q: Why nginx? Why not crtpmserver/Red5/Wowza?
A: I've tried crtmpserver (aka rtmpd) before, and it works, but is harder to use. If you need to use RTSP, though, instead of RTMP, then I recommend it, since the nginx RTMP module doesn't do RTSP. Red5 seemed overly complicated and heavy to me, and written in Java...you can use it if you want though. I haven't investigated it deeply. Wowza is not free. You can use what you like, but so far nginx is lightweight, easy to use, and free, so you're going to have to pry it from my cold, dead hands.
Q: How do I X?
A: This FAQ is still in progress...ask questions so I can add them here!
Reactions:Artem.ru, Narcogen, munozj and 7 others

RTMP Overwiew

Live video streaming is something becoming more and more popular on the Internet and platforms like Twitch or YouTube provide a infrastructure to consume endless hours of live and recorded media. While these services provide a basic solution for free, they hold contents generally behind advertisements without a paid subscription. To have full control over your contents and thanks to open-source solutions it is easy to configure an own live streaming server that uses the RTMP protocol.

Requirements

  • You have an account and are logged into console.scaleway.com
  • You have configured your SSH Key
  • You have a virtual cloud server running on Ubuntu Bionic Beaver (18.04)

Setting up the Server

1 . Log into the instance via SSH

2 . Update the apt sources lists and upgrade the software already installed on the instance:

3 . All required packages for the basic server configuration are available via APT. Install nginx and the required packages:

4 . Open the Nginx configuration file /etc/nginx/nginx.conf in a text editor:

And add the following lines at the end of the configuration file:

This sets up the live streaming server as well as recording of the streams. These will be stored in the directory /var/www/html/recordings of the instance.

5 . Create the directory for recordings and make it writeable to the web server software:

7 . Open the file /etc/nginx/sites-enabled/default in a text editor and add a location block to the server configuration:

libnginx-mod-rtmp does not support authentication by default. To avoid that anybody knowing the stream key may broadcast media, copy / paste the following content into the server configuration block, under the server_name block, to setup a basic authentication mechanism. It will ask for a password when streaming. If the password is not correct, the user will see a 401 - Unauthorized message:

Replace a_secret_password with a secret password of your choice which authenticates against the server for broadcasting streams.

8 . Restart the Nginx web server:

Configuring the OBS Client

To broadcast a stream from a local computer to the streaming server, a broadcast system is required. Download OBS Studio, an open source broadcasting solution, which is available for Linux, Mac OS and Windows.

Rtmp Server Twitch

1 . In the Controls section of the Interface, click on Settings to enter the OBS configuration interface:

2 . Enter the Stream tab and enter the Information about your streaming instance: Server:

  • Service: Custom
  • Server: rtmp://<instance_ip>/live
  • Stream Key: your_stream?pwd=a_secret_password (replace your_stream with a custom name of your stream and a_secret_password with the password you have set in the Nginx configuration)

Save the configuration and setup your scene within OBS Studio.

3 . When ready, start broadcasting to your instance by clicking on Start Streaming in the Controls section of OBS.

Connecting to the Stream

The stream can be viewed in your favourite media player, for example VLC media player.

Rtmp Server

1 . Start VLC and click on Open Media

2 . Click on the Network tab and enter the URL of your Stream:

  • URL: rtmp://<instance_ip>/live/<your_stream>

3 . Click on Open and your stream will be visible in the media player.

Setting up Multistreaming

It is also possible to rebroadcast a stream to platforms like Youtube, Facebook or Twitch to stream on multiple platforms at the same time.

Rtmp Server Port

1 . Open the Nginx configuration file /etc/nginx/nginx.conf in a text editor:

2 . Edit the file as required for the different streaming services that you want to use:

Rtmp Server Twitch

It is possible to add additional applications in the same way as the examples above.

Rtmp Server Linux

3 . Restart Nginx to activate the new configuration:

4 . Start broadcasting from OBS. You can now either view your stream via a media player like VLC, but also from broadcasting platforms like twitch: