Help Your Users be in 5 Places at Once: Your Guide to Simulcasting

You may have seen that we released a simulcasting feature for live streams. This feature allows anyone using live stream to simultaneously broadcast to multiple 3rd party platforms while also broadcasting from Mux.

You may know this feature by its other names: "Live Syndication", "Rebroadcasting", and "RTMP Passthrough". Crowdcast calls it "Multistreams" In-fact there is an entire company dedicated to this specific feature (shoutout restream.io).

The most common platforms that people are simulcasting to are: Youtube Live, Facebook Live, Twitch, and Periscope. Mux is not limited to the common platforms. Mux Simulcasting works with any arbitrary RTMP server.

How to Find Your RTMP Credentials

If you are using Mux Live Stream and you offer simulcasting as a feature to your end users, first you need to instruct your users on where to find the RTMP credentials for the popular streaming services. Experienced users will know where to find this, but for users that are newer to live streaming, you will want to make sure you have resources to educate users on how to find their RTMP credentials. The RTMP credentials consist of a "server URL" and a "stream key". Keep in mind that the stream key is sensitive. The stream key is the password that allows anyone who has it to stream to a specific user's channel.

Twitch

  • Click your profile icon in the top right then select "settings" from the dropdown
  • Under settings click the "Channel and Video" subtab and that will take you to a page with your stream key

  1. Click "Copy" to copy your stream key. This is only half of what you need.
  2. The other half is to select a Twitch "ingest server" which can be found here. For simulcasting in Mux any of the US East ingest servers are best, recommend your users use one like Ashburn, Va rtmp://live-iad.twitch.tv/app/

Youtube

  1. Click your profile icon in the top right and click "Youtube Studio"
  2. In the top right click the "Create" button then "Go live"
  3. On the next page select the "Stream" subtab on the top
  4. Give the live stream a name and click "Create"
  5. Next you should see something like this with the RTMP stream key and server URL.

Facebook

  1. From your Facebook profile click "Live video" in the top next to where you create a new post
  2. Next, in the top bar click the "Connect" subtab
  3. This will open up a panel with the RTMP stream key and server URL

Periscope

  1. Click your profile icon in the top right and click "producer"
  2. Here you will see the server URL and stream key

What Settings Should I Use?

If you dig into all the guides for these platforms you'll see that they each have their own specific requirements and guidelines. Indeed, we also have our own recommended encoder settings.

To make sure your users have the best simulcasting experience, it helps to know how Mux does things under the hood. Mux Live Stream is going to ingest the media over RTMP directly from your end user's broadcasting software. From there, Mux will transcode and process the stream and deliver it with adaptive bitrate streaming over HLS. When simulcast targets are configured for a live stream, then in addition to delivering the content over HLS Mux will "passthrough" the ingested media to the simulcast targets. That means that before the media is sent to Twitch, Youtube, Facebook, etc. Mux is not doing any processing or transcoding. Mux will simply pass it through to those other services and those services will transcode and do whatever they have to do on their end to deliver it.

With that in mind, let's take a look at what the most popular services recommend for encoder configuration. The full guides can be found here for Twitch, Youtube, Facebook and Periscope.

max bitrate (kbps) max resolution keyframe interval
Twitch 6,000 1080p (1920 x 1080) 2s
Youtube 51,000 4k (3840 x 2160) 2s
Facebook 4,000 720p (1280 x 720) 2s
Periscope 4,500 720p (1280 x 720) 3s

Let's break down the landscape. First of all, what's the tradeoff? On one hand you can tell your users to always stream at the highest possible bitrate. If a service accepts input at a higher bitrate and downscales to their officially supported max that is an option, but you want to consider the bandwidth usage and cpu power you're recommending your end users sacrifice. If the broadcaster is running Wirecast on their Macbook and streaming at 8k their poor Macbook is likely going to put a 3rd degree burn on their thighs and use up all the internet in their studio, and for what? If they are pushing 8k it is not going to result in better video because none of the services they are simulcasting to even support 8k.

Youtube is a bit of an outlier here with support for 4k. Leaving that aside, a perfectly acceptable recommendation for your end users is 4,000 kbps at 720p resolution with 2s keyframe intervals. Frames per second is another knob to tweak, for that it's best to recommend the standard 30fps. And for video/audio codecs use the standards H.264/AAC which is supported for all platforms.

This is going to give your users great quality video, that plays nice with all the major services and keeps their computer from melting and using up a ton of bandwidth. This is a blanket recommendation, if you have unique requirements for your service (for example, you only support simulcasting to Youtube), then play around with these settings and see what works best!