Introduction for the new how-to article in the Knowledge Base.

23 January 2021

I wrote a new guide on setting up your own live-stream server. Mostly due to your requests. I took the opportunity to simplify and shorten the guide a bit. If you follow this guide step by step, and use your brain a tiny bit, you'll be fine. This guide has so far been tested on three occasions, and it works 100%.

Before you decide to follow the KB guide, I want to make something clear. Creating your own live-stream server like this can not be compared by using a streaming platform like Youtube or Twitch. They use a worldwide network to deliver their content, and we're just using 1 server. That means that certain factors become really important if you want to use it for your purposes. For example, it does actually matter where the server is located. If you host a server in Japan, it may not be as fast as you hoped in Ireland. Also keep in mind that when you decide to host your server from your home, that your bandwidth may become a bottleneck. When you have more than a handful of viewers, your upload speed may be seriously maxed out, resulting in a bad viewer experience. Don't even try hosting a live-stream server on a ADSL line < 20Mbps. A glass-fiber connection would be best. To allow many more viewers (> 100) you should host it in a VPS or dedicated server, preferably that is in a datacenter with a >500mbps connection. The downside of that is that now the processing power and amount of cores may not be powerful enough to do all the transcoding ánd deliver the content to viewers. This obviously totally depends on what hardware it's running on or is available for your shared VPS. A dedicated server would be the best solution, but they are usually a lot more expensive. Personally, I've been using a VPS with 6 cores and 8 GB of ram and that was enough for my purposes, but I should also mention that I didn't do any transcoding for ABS on it. All I'm trying to say here is that this setup is not meant to host a live-stream server to completely replace Youtube or whatever platform and allow a ton of viewers for you. And that there are several factors that you need to consider or investigate, as they play an important role in whether you'll have a live-stream server that meets your demands or wishes. If you're not sure and need advice, you can always ask us for advice. Having said this, there are still plenty of reasons to set up your own live-stream server. It is up to you to decide if it will also work for you.

So why would you still want to host your own live-stream server, then? Well there are plenty of other things that you can use it for. For me personally, I often just use it to re-stream. Meaning that I have my server that I send my OBS stream to, and it will re-stream this to several other platforms simultaneously. I don't need to transcode it to adaptive bit rate streams, since I can just forward the RTMP stream to Youtube & Twitch. I use a laptop with a Core i5 in it and this is more than enough for this purpose.
Perhaps you just want to stream to a website that is hosted elsewhere, or on the same server if you prefer, and don't expect thousands of viewers. In that case, our build would be perfect. If you keep the amount of viewers under or around 100 then you'll be fine also with a server hosted from your home, if the hardware is not many years old.
Another example for using a single server is that it can also be used as a primary hub that you stream to, and from there it distributes to several other servers located at different parts of the world. This can be VPS servers that you rent, or an already existing CDN.
Another use that it's perfect for is to pull streams from elsewhere, like an RTMP stream from a friend, or an RSTP stream from an IP webcam or an SRT feed, and re-stream it, or record it, or have it go through an app like OBS and overlay it before sending it out again to your website or another platform like Youtube.
Another example it's fit for is when you want to stream a conference call with friends using Skype or Zoom or Jitsi and show all the participants. These are just some examples of what the possibilities are, but there are many, many more. My advice is to first form a clear idea of what you require from your server, and explore your options from there. We're here for you if you are in need of some advice. Anyway, I hope this article has helped to explain what you should or can expect from your server once you decide to build it.

When you're ready, you can go head over the knowledge base article. Or continue reading this article..


The knowledge base article contains the option to create an adaptive bit rate HLS stream, so I'll be explaining why you may want to utilize this and what you should be aware of.

Why would you want a HLS supported adaptive bit-rate stream ?

Trust me, this is what you want, since this form is the most widely supported one for delivering it to the largest range of viewers. This type of stream is actually a bundle of streams, and it uses an index file to advertise and distinguish the different streams. One of the streams in this bundle will be delivered to the client. The player can request a specific one, or request to switch between available streams. But this is not common. Usually the server will start delivering the default variant of your stream that you will have set as the default one. The server will communicate with the peer, and do a bandwidth test, to determine if the most optimal stream variant is currently being delivered, and change this automatically to the most optimal when possible. Viewer will barely notice this since the stream will not be interrupted, even when the viewer is on a prehistoric internet connection. Using a viewer-friendly type of stream like this can be compared with how the largest, well-known platforms like Netflix and Youtube deliver their streams. This form of live-stream has the largest range, as it is supported by all platforms, or any type of device, on either fast or slow internet peers. In other words, it allows anybody to view the stream. This is what you want of course.

You can use a build like the one in the knowledge base article for various purposes. For example to push your stream simultaneously to other live-stream platforms like Twitch, YouTube, Roku etc. Or you can use it as your own live-streaming platform so you don't have to depend on those well-known free platforms out there because you don't like their policy, or in case you got banned. Another example is to have your server record all incoming streams so this way you can stream from anywhere using your mobile and have your server record the stream and / or push the stream to other nodes. You could have your friends use your server for their live-streams, but this also has some serious limitations because every incoming RTMP stream needs to go through the trans-coding process done by Ffmpeg and each additional stream will drastically reduce the performance of the server. The server can also be configured to behave as a sort of hub to distribute your live-stream to a CDN for ultra fast delivery worldwide. These are just some examples, but basically the possibilities are endless, it's whatever you want it to become.

If you believe this is for you, then you should head over the knowledge base article and get started. Gl and have fun!

Leave a Reply

Your email address will not be published. Required fields are marked *