Written by StreamYard
Custom RTMP Live Streaming: The Ultimate Guide
For nearly two decades, RTMP has been a leading “vehicle” for transmitting audio, video, and data over the internet due to its stability, low latency, and accessibility.
Most live-streamers are dependent on RTMP to broadcast their content to their viewers even if they do not realize it!
Virtual broadcast studios, such as StreamYard, eliminate the need to worry about the back-end logistics that make live-streaming possible.
However, knowing a bit about RTMP will help you better understand how it all works and how you can reach new audiences outside of the standard “go-to” platforms such as Facebook, YouTube, Twitch, and Twitter.
What is RTMP Live Streaming?
Real-Time Messaging Protocol (or RTMP) was developed by Macromedia as a proprietary system to transmit audio, video, and data between their Flash player and a server. Adobe purchased Macromedia and their respective technologies back in 2005, later releasing RTMP as an open-source protocol to the public in 2012.
Once public, RTMP became a widely used backbone of streaming technology despite Adobe's move to push flash into obsoletion by the end of 2020.
At the time RTMP was rolled out, one of the main benefits was low "latency" – the delay in transferring data from the encoder to the video player. RTMP achieved what technophiles considered "ultra-low latency" with stream delays as low as 5 seconds.
Today, newer protocols, such as WebRTC and FTL, are gaining traction due to their sub-second latency. Still, RTMP remains a key protocol for streamers due to its reliability and wide platform support.
How does RTMP work?
To send your broadcast to a destination or platform using RTMP, you need two pertinent pieces of information:
- RTMP Server URL – Consider this the backend link to the platform that you will be broadcasting to. (i.e., Vimeo’s Server URL is rtmp://rtmp-global.cloud.vimeo.com/live)
- Stream Key – This is the private code that will allow your RTMP feed to connect to the exact location on Vimeo that you are streaming to. It’s usually a long alphanumeric string of characters such as 95hfc34a-dd5b-4d61-bece-70gkew3m4aq.
While the Server URL typically remains the same every time you stream to a specific platform, the Stream Key will generate uniquely. This means the Stream Key will change every time. So, be sure to copy and paste the Server URL and Stream Key when setting up an RTMP feed.
Remember, a small typo can be catastrophic as it can prevent your broadcast from reaching its destination!
When the Server URL and Stream Key load, you just have to start your broadcast. And that's it. Now, let the protocol do the rest.
The "initiator" (i.e., StreamYard) will ask the "acceptor" (i.e., Vimeo) to start a connection. Once you enter the details correctly, the acceptor will respond. Thus, creating a pipeline to quickly move small packets of data from point A to point B.
When the stream ends, the connection between the two sources stops, signaling the broadcast's end.
What about multi-streaming?
Services like StreamYard offer the valuable ability to multi-stream your broadcasts to various destinations at one time. Thereby, expanding the reach of your broadcast. (At the time of writing, StreamYard allows for up to three multi-stream destinations per broadcast on the "Basic" plan and eight on the "Professional" plan).
On the technical side, multi-streaming follows a "rinse and repeat" approach to the RTMP connection process. Since the broadcast is sent to each platform using a separate "pipeline," streams can start or stop during a broadcast without disturbing other streams that are currently in progress.
Let's say you are streaming your show to YouTube and Facebook but want only your Facebook friends to watch a private Q&A at the end of your broadcast. In that case, you could "Remove" the YouTube stream before the Q&A begins without the need to end the broadcast altogether.
What platforms accept RTMP streams?
The number of platforms accepting RTMP streams is growing every day with the emergence of several virtual event "venues". Below is just a small handful of platforms that currently allow for ingesting and broadcasting of RTMP feeds:
- Social Content Sharing Platforms: Facebook*, Twitter (Periscope)*, LinkedIn*, Twitch*
- Online Video Players: YouTube*, Vimeo, Vzaar, Dacast, Finalweb, Wowza, Crowdcast
- Multi-Streaming Tools: Restream, Streamlabs
- Virtual Event Platforms: Hopin, BigMarker, Accelevents, SpotMe, Workplace, Kollective, Eventfinity, Livestream, Teams Live Event
*Note that these specific platforms streamline the RTMP process so well that encoders and broadcast studios such as StreamYard can automatically connect and program the Server URL and Stream Keys without you even having to lift a finger.
What is a “custom RTMP” destination on StreamYard?
A "custom RTMP" destination is simply any destination outside of StreamYard's existing partnerships with Facebook, YouTube, Twitch, Periscope, and LinkedIn, which currently handle the RTMP programming without you having to input them manually.
For example, Vimeo can be a custom RTMP destination. That's because it's not one of the platforms mentioned above that allow for automated programming.
That said, setting up a destination is easy for your custom RTMP live streaming!
How can I add a custom RTMP destination to my StreamYard account?
To explain it better, let's assume you schedule a Live Event on Vimeo for your upcoming broadcast. To add this custom RTMP destination to StreamYard, follow these steps:
1. Navigate to StreamYard.com and log into your account.
2. Click "Destinations" on the left-hand panel.
3. Now, click the "Add a Destination" button on the top-right of the screen.
4. Click the "Custom RTMP" grey button.
5. Here, input your RTMP server URL, Stream Key, and a nickname for the destination. Copy the RTMP information directly from the "Connect" tab over at Vimeo. The Nickname should be something that you will easily recognize, such as "Vimeo."
6. Once you copy the RTMP Server URL and Stream Key over to StreamYard, click "Add RTMP Server" at the bottom of the page.
7. Congratulations! Your custom RTMP Server has been added as a destination in StreamYard. You can now schedule broadcast(s) to this destination like you would Facebook, YouTube, etc.
A word of warning on Stream Keys
Depending on how your event is set up on the destination side, your Stream Key will either be "single-use", burn after each use, or be reusable. Continuing with our Vimeo example, the new event that I set up had a scheduled date and time. This means that once the stream ends, the Vimeo event will subsequently end as well. Therefore, destroying the Stream Key from being used again down the road.
But, if I set up the Vimeo event as a "recurring event," I could reuse the same Stream Key for multiple broadcasts.
Keep this in mind when adding custom RTMP destinations in StreamYard. That's because you need to create a new destination for every unique, non-recurring event set up on the platform side.
Limitations of Custom RTMP Live Streaming
One important point to remember about using custom RTMP for live streaming is that while you can broadcast to new destinations and platforms, you lose the ability to display live comments on your show. Instead, you would need to either monitor them on a separate screen or monitor and mention them during your broadcast, or go back and respond to them after the broadcast has ended.
In addition, you cannot see the number of live viewers on your broadcast or schedule your live stream.
With dozens of new venues for live-streaming releasing every month, knowing how to send your broadcast to custom RTMP destinations is a versatile skill to have under your belt. Think about the ways these new platforms will expand your audience and further spread the wings of your stream.
To find out more on how to make your live stream run smoothly, check this out.