How To: Live-Stream To Multiple Platforms Simultaneously. OBS to nginx to DLive, Restream, Twitch, YouTube

in #tutorial6 years ago (edited)

Imagine this scenario:

  • You're a live streamer and you built a following of faithful viewers.
  • Your channel's growth stagnates lately but you want to become bigger.
  • You discover a new alternative streaming platform and want to try it.
  • You like the new platform but you don't want to abandon your hard-built, faithful viewership on your original platform.
  • You don't have to decide between them, you can use them all at the same time!

Whether you can relate to this scenario or not, you clicked my article, so chances are that for whatever reason you need to or want to do this. ;-)
Maybe just for the sake of it (like me, because I can) or for the potential of getting viewers over from one platform to another, for example from twitch.tv to dlive.io or vice versa.
Another nice side effect: this will give DLive more exposure on other platforms and get new users interested in both DLive and Steemit.

Here is a step-by-step tutorial on how to do that. I won't focus too much on generally setting up each individual application or service in detail, but more on how to fill the missing links between them.

Overview

Open Broadcaster Software (OBS) streams to a local proxy server (nginx), which relays your stream to multiple destinations via the RTMP protocol.
restream flowchart.png

Steps:

  1. nginx Download + Setup
  2. DLive Settings
  3. (Optional) Restream.io Sign Up + Setup
  4. OBS Settings
  5. Start streaming to multiple platforms simultaneously

Step 1: nginx

  • Download nginx with the RTMP module included.
    To save time, I used this precompiled version of nginx. You could also use this newer one or compile the latest version yourself, I didn't try it yet though.

  • Extract nginx to a folder of your choosing (e.g. C:\Program Files (x86)\nginx-rtmp-win32-master)

  • Configure nginx
    Go to the conf subfolder and edit nginx.conf (I use Notepad++ for better readability).
    If you already know the RTMP URLs and stream keys of the respective platforms, you can enter them now. Otherwise, keep nginx.conf open to fill the blanks later.
    In the screenshot, you can see three destination servers (the second one is inactive/commented out by using # in front of the text)
    nginx conf blacked.png
    You can add as many destinations as you want by adding another push line, consisting of the RTMP URL ended by a semicolon:
    push rtmp://[Streaming Server and Key];
    The URL syntax differs from platform to platform, be sure to copy it correctly.

  • Start nginx.exe
    If configured correctly, it will be listening on port 1935 for incoming RTMP transmissions. You can skip to step 4, if you have already set up your streaming platforms.
    If nginx doesn't start, check the error.log in the logs subfolder (e.g. C:\Program Files (x86)\nginx-rtmp-win32-master\logs)

Step 2: DLive Settings

On dlive.io, click Go Live

  • Make sure Current Transcoder is set to DLive (Update | v0.6.0: Our Most Exciting Update!)
  • Get Server URL and enter it into nginx.conf like described in step 1:
    rtmp://stream.dlive.io/live?key=[Stream Key]/[Stream Name]
    dlive encoder auth.png

Step 3: (Optional) Restream.io Sign Up + Setup

Theoretically, you wouldn't need restream.io, you could use nginx locally for an unlimited number of output destinations.
In reality, you may face the problem of limited upstream bandwidth though.
To solve that problem, I use nginx to forward the stream to only two destinations: DLive and Restream.io. From Restream.io, you can then forward to all 30+ supported destinations for free.
You may wonder why not just stream directly from OBS to restream.io?
Well, you can do that, but not for free. They don't support DLive yet, so you would need the custom RTMP option, which costs $ 14.99 / month.

restream dashboard.png
Restream.io Dashboard

  • Get RTMP URL of your nearest/fastest Server
  • Enter it into nginx.conf like described in step 1 (e.g. rtmp://eu-central.restream.io/live/[Stream Key])

Step 4: OBS Settings

obs stream settings.png

  • In OBS Settings, go to Stream.
  • Select Stream Type Custom Streaming Server
  • Enter the RTMP URL rtmp://[Local IP Address]/live/
  • Stream key can be anything because we don't have authentication enabled in nginx.

Step 5: Start Streaming

Once everything is set up correctly:

  1. Start nginx.exe
  2. Start OBS
  3. Go Live on DLive
  4. Start Streaming in OBS

obs cam with chat.png
OBS scene with camera and browser chat windows

Congratulations, you're now streaming to multiple platforms simultaneously!

  • Check your channel on each platform to verify the stream is running fine.
  • Monitor each channel's chat room for best viewer interaction. There is a nice feature on Restream.io, combining multiple chat rooms.
  • Have fun.

I hope you liked my tutorial, thanks for reading! Let me know in the comments if you have any questions.


Help me out using these referral links

  • busy.org - the largest and most feature-rich alternative to Steemit
  • Get more followers with SteemEngine

My videos and live streams

dlive.io/@spreadfire1

I'm not really active there, but if you wanna check out my old content:
twitch.tv/spreadfire1
youtube.com/spreadfire


My latest top articles:

 Philosophy
thumbnail small.pngEmbrace The Moment
 Steemit / Story
thumbnail small.jpg50 Days Later: Summary Of My Steemit Experience After 50 Days
 Health / Story
thumbnail comic small.pngPlacebos are dangerous!
 Heroes of the Storm DLive Stream
thumb hots azmo.png[Heroes of the Storm] Best Azmodan EU!
Sort:  

valuable post. need to resteem for my future references. I need it. thanks again

I'm glad you find it helpful, thanks for reading and resteeming! :-)

Hey! I loved the tutorial! I was wondering if you could clarify for me what im actually supposed to put in there? or tell me how to find it? thanks in advance!
image.png

Hi @thatterrioguy,
You can use this rtmp address:
rtmp://localhost/live/

So just that will work? thanks dude! You should do an update on this article now that this is going to be sought after more after the dlive thing....

Posted using Partiko Android

Nice detailed post. That's the kind of content that should be promoted on steemit

Beep bop, this is @pushbot.
I just received a signal from the Mother Ship that you may require a push.
You just got a 8.88% upvote courtesy of @howtoweekly!


Message from the Mother Ship:

You can earn daily profit by delegating SP to make @pushbot stronger. Delegators receive a share in 95% of the earnings.

Click one of the links below and start earning :)

10 SP20 SP50 SP
100 SP200 SP500 SP
1000 SP2000 SP5000 SP
Any Other Amount

Fabulous article, even though I will have to go back and reread it a couple times to process everything. My husband and I were just talking about how to cover all avenues to continue to grown and expand out business.

Okay I have a really big important time sensitive question. Lol. I'm Omi by the way. Hi. Last year I was researching multistreaming and I'm wondering if you know this set up can also multi-stream to Facebook and Periscope. I heard Periscope has a new streaming api or something. Have you done it? I'm possibly looking to do a big steem campaign on Saturday. Thanks @spreadfire1

Hi @omitaylor,
Yes you can :-)
I haven't tried those two platforms, but the principle should be the same like in my article. Get the rtmp URL of each respective platform and enter it in nginx.conf

Okay so restreem.io has free periscope, but Facebook is a custom rtmp that you have to pay for on resteem.io. So would it be more efficient to use periscope within restreem.io and fb at the nginx point? Restreem.io keeps your ram and bandwidth from running out, right?

This is a legit guide my man

very very good post🙏🙏
thank you for share post❤
If you have time to visit my blog

Great post!
Thanks for tasting the eden!

just the information I was looking for thank you!

I'm glad I could be helpful :-)

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 64549.55
ETH 3170.62
USDT 1.00
SBD 4.13