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.
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.
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.
|max bitrate (kbps)||max resolution||keyframe interval|
|Twitch||6,000||1080p (1920 x 1080)||2s|
|Youtube||51,000||4k (3840 x 2160)||2s|
|4,000||720p (1280 x 720)||2s|
|Periscope||4,500||720p (1280 x 720)||2s|
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!