How I Stream to Multiple Sites Including Vimm and 3Speak

Today @chrisrice tried his luck at livestreaming on @vimm for the first time. I stopped by and hung out but he had a question that I wanted to help answer about how to get his video feed to show up in multiple places at the same time. I told him that I use my own VPS but that there were a number of services that can help do this. This guide will help you run your own server but you will need a bit of technical knowledge to get there.

While we were in @chrisrice's stream, @cronicasdelcesar stopped by and recommended Mobcrush as an option. I've never used them before but I thought this was worth a mention because it looks like they offer 1 custom RTMP stream for free. This means that if you didn't want to stream to both Vimm and 3Speak at the same time then this would be a way to stream to one of those along with multiple other non-Hive based sites for free. It's also pretty user friendly which might make for an option if this guide is too complicated.

What all will I need?

VPS running RTMP software
SSH Client to access your VPS (PuTTY for Windows works great)
Restream.io Account (Optional)

VPS Options

I've long used Vultr for a lot of my VPS needs. They are reliable, fairly cheap and accept Bitcoin (through BitPay 🤢) so I've been able to use them easily for years. They also have a decent referral program so if you use my link you'll start off with $100 worth of credits after you add $25 to your account and are active for 30 days. I have a streaming server set up on one of their Atlanta Ubuntu 18.04 servers for $5.


image.png

Another option that I'm just getting started testing out is Privex. Privex is well known in the Hive community as they offer great services to run your own witness nodes for this chain. More importantly for this guide they accept Hive as payment allowing you to pay for the server with what you get from post earnings. Looking over their offerings we should be good to start with their V1-SE-SSD package with Ubuntu 18.04 for $5.


image.png

Preparing Restream.io

Since each feed your VPS is sending out to a new service is using computing and network resources it makes sense to lower the amount of services you have to send out to. One easy way to do this is by using a service like Restream.io to send your stream to and allow them to send it to any of their partner sites. Their site is user friendly and they offer streaming to a number of sites so I won't go into detail for setting them up. I will however note that you'll want to take note of restream's RTMP settings so we can add this to our VPS when we're ready.

Setting Up

Once you've purchased your server you should have information to access your server. If you've used Vultr you'll find the information needed by clicking on your server under the products section of the admin page. If you registered with Privex then you'll receive an email with all of the information needed. What you're looking for is the IP address (IPv4) of your server, the username and your password for accessing the server.

1.) Open PuTTY and put your IP address in the top field for Host Name and then click on 'Open'

2.) If this is your first time accessing this VPS you'll need to click Yes on the pop up.

3.) Use your username from your VPS to login

4.) Use the password from your VPS to login

5.) The first thing I'd do is make sure there are no updates for your operating system and then install them if they are found.

sudo apt update
sudo apt upgrade

6.) The first piece of the pie will be setting up Nginx on this system.

sudo apt install nginx

7.) Now we'll set up RTMP so that Nginx can handle your stream coming in.

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

8.) Now it's time to configure your Nginx web server to work with your RTMP software. Open your Nginx conf by typing

sudo nano /etc/nginx/nginx.conf

Now go all the way to the bottom of this file and then copy and paste the following into your nginx.conf file.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}


image.png

9.) Now it's time to point where you want your VPS to send out streams to. This is where you'll want to gather the RTMP information for all of the sites you want to send your stream out to. As I said I organize mine to go to vimm.tv, 3speak, Discord and then to restream.io where it redistributed to Twitch, Facebook, YouTube, etc.

To add these sources go to the line below record off; and add a new line for each service you're going out to. Now you can add them wiht the prefix "push" followed by the RTMP address. Some sites will give you this as all one string, if they split it apart just use the address first followed by your key after it with a / dividing. It should look something like this when you have it ready.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                        push rtmp://us.vimm.tv/live/YourPrivateStreamKey;
                        push rtmp://rtmp.3speak.online/LiveApp/YourPrivateStreamKey;
                        push rtmp://live.restream.io/live/YourPrivateStreamKey;
                }
        }
}

If you used Privex you may want to use Vimm's EU settings instead of the US settings since Privex Sweden servers will have less latency travelling there.

10.) Now we're almost ready to start our first stream. Before we finish with the server we'll need to restart Nginx so it's new configuration can take effect.

sudo systemctl restart nginx

Your streaming server should now be ready to go!

11.) Now it's time to set up OBS to send your stream to your VPS. Open OBS, or your choice of streaming software, and go to your stream settings. Set your server as:

rtmp:///live

Set the stream key to anything you'd like and save those settings.

12.) Go live to test! You should see that your stream is being forwarded to any services you set up in your nginx.conf file.

From here I'd recommend looking into hardening your server. There's a number of ways of limiting other users from firewalls to your IP address or even using RTMP limits. That's a bit more advanced so for now I'll leave it here.

Did this help you? If so let me know in the comments below!

H2
H3
H4
3 columns
2 columns
1 column
7 Comments
Ecency