Video Streaming Protocols: 6 Preferred Formats for Professional Broadcasting
When you get started with live streaming, you’ll notice an abundance of acronyms that serve many different purposes. There’s RTMP, HLS, SRT, and more.
Many of these acronyms relate to different video streaming protocols. Basically, protocols are technical processes that facilitate the transfer of data from one program to another. In streaming, this means the transfer of your video files to and from your encoder, streaming host, and eventually, the video player where your audience views your stream.
Today, we’re going to identify some of the most common video streaming protocols you’ll encounter, what they do, and when they should use them. We will break down all the acronyms associated with different video streaming protocols. In order to provide some relevant background to help you understand, we’ll also explain the relationship between a codec vs a container format.
Are you ready to dive into live streaming protocols?
Please note that this post has been updated to reflect the latest developments in video streaming protocols as of October 2021.
Table of Contents
- What is a Video Streaming Protocol?
- Streaming Protocol vs. Codecs vs. Container Format
- 6 Preferred Protocols for Video Streaming
- How to Choose Video Protocols for Your Stream
- YouTube Streaming Protocols
What is a Video Streaming Protocol?
A video streaming protocol is a standardized delivery method for breaking up a video into chunks, sending it to the viewer, and reassembling it. Video streaming protocols are the rules and methods that are used to break video files into small pieces so that they can be delivered to your viewers.
Before we go further, let’s look a little further into the “why” behind video streaming protocols. Most digital video is designed for two things: storage and playback. This leads to two major considerations, namely small file size and universal playback.
Most video files aren’t designed for streaming, which means streaming a video involves first converting it into a streamable file. This involves breaking the video up into small chunks. These chunks then arrive sequentially and playback as they’re received. If you’re streaming live video, the source video comes in straight from a camera. Otherwise, it’s coming from a file for video-on-demand VOD content.
That is a basic explanation of how streaming protocols work. Streaming protocols can get much more complex. Many are “adaptive bitrate” protocols, for example. This technology will deliver the best quality that a viewer can support at any given time.
So if a viewer has a slow internet speed, they will be delivered a lower-quality video, and if a viewer has a faster internet speed, they will be delivered a higher-quality video.
Some protocols focus on reducing latency, or the delay between an event happening in real life and when it plays on the viewer’s screen. Some video protocols only work on certain systems, and other video protocols focus on digital rights management (DRM).
As we move through some specific video streaming protocols, we will put these and other characteristics into perspective.
Streaming Protocol vs. Codec vs. Container Format
Among others, one common source of confusion in the realm of streaming video relates to the difference between a video protocol and a codec.
Simply put, the term “codec” refers to video compression technology. Logically, different streaming codecs are used for different purposes. For example, Apple ProRes is often used for video editing. H.264, the most common video codec, is widely used for online video.
As with codec, the term “format” can also be confusing in the context of video streaming protocols. In many cases, format simply refers to the container format of a video file. Common container formats include .mp4, .m4v and .avi.
In essence, a container format functions like a “box” that usually contains a video file, an audio file, and metadata. However, container format isn’t as central a concept for live streamers.
Let’s make a comparison to make it easier to understand the relationship between a codec, a container format, and a streaming protocol.
Imagine that you’re a merchant, and you’re transporting clothing in bulk (the clothing represents the video content):
- The streaming codec is equivalent to the machine that compresses the clothing into a bundle to save space.
- The container format is the boxcar that these bundles are packed inside.
- The streaming protocol is analogous to the railroad tracks, signals, and drivers who deliver it to the destination.
As a broadcaster, you want your live video content to function in concert with a codec, container format, and video streaming protocol. It’s also important to note that most video streaming protocols only support certain codecs, but we’ll get more into this later.
6 Preferred Protocols for Video Streaming
Now that you have a better idea of the purpose of video streaming protocols, let’s start our comparison with a list of the most common protocols for video streaming today. This will help you better understand the best video protocols for live streaming and videos-on-demand.
In this comparison, we’ll also offer use cases for each video protocol whenever possible.
1. HTTP Live Streaming (HLS)
The first video streaming protocol we’ll discuss is HTTP Live Streaming or HLS. Apple originally released this video protocol in 2009 to enable them to drop Flash from iPhones. Since then, HLS has become the most widely-used streaming protocol.
There are several reasons for this. First, desktop browsers, smart TVs, and both Android and iOS mobile devices all support HLS. HTML5 video players also natively support HLS streaming. With so many devices supporting HLS, it is only natural that it has become one of the best video protocols for streaming video.
This allows a stream to reach as many viewers as possible, making HLS the safest protocol today for scaling a live stream to large audiences. For example, you can use this protocol to stream live video on your website with a simple embed code, and you can reach viewers on most devices.
As far as features, the HLS standard also supports adaptive-bitrate streaming, dynamically delivering the best possible video quality at any moment to each individual viewer. With recent updates, this standard now supports the latest and greatest H.265 codec, which delivers twice the video quality at the same file size as H.264.
Currently, the only downside of HLS is that latency can be relatively high. Latency is the delay one experiences between when a file is sent and the viewer receives it. With live video streaming, latency can best be described as the delay between when live content and when the viewer gets that content. However, there are methods for reducing HLS latency, helping to combat one of the few downsides to this video protocol.
Who Should Use HLS?
HLS is the most widely-used protocol for live stream delivery because it’s robust and effective. For example, we know that few viewers will return to a site during a stream if they experience a video failure. Using a widely compatible, adaptive protocol like HLS will deliver the best possible audience experience. HLS is one of the best protocols for streaming video.
We’d also like to mention that HLS is now the default streaming protocol at Dacast.
Pros of Using HLS:
- Highly compatible: Since HLS is compatible with the HTML5 video player, the HLS protocol is suitable for streaming to practically any internet-enabled device and operating system
- Secure: HLS is known for secure streaming
- High quality: HLS produces ultra-high-quality video streams thanks to its adaptive bitrate streaming technology
Cons of Using HLS:
- High latency: HLS is not capable of latency as low as some of the other preferred protocols
- Not great for ingest: HLS isn’t the best option for ingest since HLS-compatible encoders are not accessible or affordable
2. Real-Time Messaging Protocol (RTMP)
Next up is the veteran video protocol: RTMP or Real-Time Messaging Protocol. Originally developed by Macromedia in the early days of streaming, the RTMP protocol is still widely used.
Today RTMP is mostly used for ingesting live streams with the help of an RTMP-enabled encoder. In plain terms, when you set up your encoder to send your video feed to your streaming platform, that video will reach the platform via the RTMP protocol. That content eventually reaches the end viewer in another protocol, usually HLS. RTMP is used together with other video streaming protocols.
RTMP is rarely used as a viewer-facing video streaming protocol like it once was. That’s because it’s dependent on the Flash plugin, which is now totally obsolete. If it is used, it is usually paired with another protocol like HLS.
Who Should Use RTMP?
RTMP is a streaming protocol that provides very low latency streams. However, because it is incompatible with the HTML5 video player, we do not recommend using RTMP for delivery. Again, the exception is for stream ingestion. For this purpose, RTMP ingest is still one of the best options for stream ingestion. It’s robust and almost universally supported.
Pros of using RTMP:
- Low latency: Low latency allows your live video stream to maintain a stable connection and video feed for the viewer, even if the internet connection is unreliable. This provides your viewers with fewer “lags” when watching your videos with a shaky internet connection, allowing them to quickly resume the stream once their internet connection stabilizes.
- Adaptable: An adaptable feed means your viewers aren’t locked into watching your feeds in one linear direction. With content hosted on an RTMP server, the feed allows them to skip and rewind parts of the feed or to join a live stream after it’s begun. Viewers often expect this type of control over the content they watch.
- Flexible: RTMP allows you to integrate a variety of video formats into one cohesive package, seamlessly blending audio, video, and text. Additionally, you can have multiple variations of media channels, such as streaming both MP3 and AAC audio streams or streaming MP4, FLV, and F4V videos.
Cons of Using RTMP:
- Not supported by HTML5: RTMP is supported by Flash players, a format that’s well on its way toward obsolescence. HTML5 players are quickly becoming the modern standard, but RTMP cannot play on HTML5 players without a converter such as HLS video protocol.
- Bandwidth issues: RTMP streams can be especially vulnerable to issues of low bandwidth. This can cause frequent, frustrating interruptions to your streams that ruin the experience for your viewers.
- HTTP incompatible: You cannot directly stream an RTMP feed over an HTTP connection. To use an RTMP stream on your website, you have to connect to a special server, such as the Flash Media Server, and use a third-party content delivery network (CDN).
Web Real-Time Communications (WebRTC) is an open-source video project that is capable of streaming with real-time latency. This project was developed to support voice-over-internet protocol (VoIP), and it was purchased by Google to support Google’s video chatting tools.
WebRTC is technically a streaming project and not a streaming protocol. However, it is often lumped in with the preferred video streaming protocols since there is a lot of overlap.
Who Should Use WebRTC?
WebRTC is valuable in streaming setups that require real-time latency. Peer-to-peer streaming, which is commonly called “web conferencing” or “video conferencing” is one of the top use cases of WebRTC.
Some popular software and apps that use WebRTC include Snapchat, Facebook, WhatsApp, and other social media platforms that support video chatting.
Pros of Using WebRTC:
- Open-source: Since WebRTC is open-source, it can be customized to suit your specific streaming needs
- Real-time latency: WebRTC supports streaming with real-time latency, which means that your video travels to your viewers’ screens in virtually real-time
Cons of Using WebRTC:
- A Newer Tech: WebRTC is a recent development and so the rest of the market hasn’t adapted yet. You may find some issues with streaming setup compatibility
4. Secure Reliable Transport (SRT)
Secure Reliable Transport (SRT) is a relatively new video streaming protocol from Haivision, a leader in the online streaming industry. This open-source protocol is known for its remarkable security, reliability, compatibility, and capability of low latency streaming. It is a great real-time streaming protocol.
There are currently some limitations on streaming with SRT because other streaming hardware and software have yet to develop to support this video protocol.
Who Should Use SRT?
SRT is the preferred protocol of many members of the SRT Alliance. This is a group of companies in the technology and telecommunications space that are dedicated to pushing SRT to the forefront of the live streaming industry because they believe it is the best protocol for streaming video.
The SRT Alliance was founded by Haivision, the same company that developed the video streaming protocol. Some major members of the SRT Alliance include Microsoft, Telestream, Alibaba Cloud, Comcast, Eurovision, and AVID.
If you are using technology that is supported by any of the SRT Alliance members, you should be able to easily incorporate SRT video streaming protocol into your streaming setup.
Pros of Using SRT:
- Secure: SRT includes top-of-the-line security and privacy tools so that broadcasters can rest assured that their streams remain safe and sound
- Compatible: SRT is device and operating system agnostic, meaning that it can deliver streams to most internet-enabled devices
- Low latency: Low latency streaming is a major value add for professional broadcasters. SRT achieves low latency streaming with the support of error correction technology
Cons of Using SRT:
- Not yet widely supported: like WebRTC, SRT is still a bit futuristic. The streaming industry will need to catch up before this video protocol is a standard
5. Real-Time Streaming Protocol (RTSP)
Perhaps a lesser-known video streaming protocol, Real-Time Streaming Protocol (RTSP) was first published in 1998. RTSP was developed to control streaming media servers in entertainment and communications systems, specifically.
In 2016, an updated RTSP 2.0 became available. Overall, it is known as a video streaming protocol for establishing and controlling media sessions between endpoints.
RTSP is similar in some ways to the HTTP Live Streaming (HLS) protocol, which we’ll cover below. However, transmitting live streaming data is not what RTSP accomplishes on its own. Instead, RTSP servers often work in conjunction with the Real-Time Transport Protocol (RTP) and Real-Time Control Protocol (RTCP) to deliver media streams. It is a real-time solution that needs to work together with other video streaming protocols.
Who Should Use RTSP?
RTSP was designed to support low-latency streaming and is a good choice for streaming use cases such as IP camera feeds (e.g. security cameras), IoT devices (e.g. laptop-controlled drone), and mobile SDKs. It is not designed for high-quality live streaming over the internet to numerous viewers.
One significant drawback, however, is there is limited native browser support for RTSP.
RTMP vs. RTSP
RTMP and RTSP are both streaming protocols, meaning they are sets of rules that govern how data travels from one system of communication to another. These similar-looking acronyms are often confused with one another. If the video data you’re trying to send to your viewers is a car, then the streaming protocol is the road that the car takes to get from one place to another.
Choosing between RTMP vs. RTSP streaming protocols greatly depends on your individual business needs and how many extra steps you are willing to take to make your content playable on your website.
Pros of Using RTSP:
- Segmented streaming: Rather than forcing your viewers to download an entire video before watching it, the RTSP stream allows them to watch your content before the download is complete.
- Customization: By utilizing other protocols, such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), you can create your own video streaming applications.
Cons of Using RTSP:
- Less popular: Compared to other media streaming protocols, RTSP is far less popular. Most video players and streaming services do not support RTSP streaming, making it more difficult to broadcast your stream in your browser. To broadcast an RTSP stream, you must use a separate RTSP live streaming service.
- HTTP incompatible: Like RTMP, you cannot directly stream RTSP over HTTP. Because of this, there is no easy, straightforward way to stream RTSP in a web browser, as RTSP is designed more for streaming video on private networks such as security systems within a business. However, you can stream RTSP using additional software that’s embedded into your website.
6. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
Last but not least, we have MPEG-DASH. While it’s not widely used yet, this video protocol has some big advantages.
First, it supports adaptive-bitrate streaming. That means viewers will always receive the best video quality that their current internet connection speed can support. This tends to fluctuate second to second, and DASH can keep up.
MPEG-DASH fixes some long-standing technical issues with delivery and compression. Another advantage is that MPEG-DASH is “codec agnostic,” meaning it can be used with almost any streaming encoding format. It also supports Encrypted Media Extensions (EME) and Media Source Extension (MSE) which are standards-based APIs for browser-based digital rights management (DRM).
Who Should Use MPEG-DASH?
These days, MPEG-DASH is only being used by a fraction of professional broadcasters as compared to HLS. For a while, experts believed that this protocol would take off, but we are yet to see that theory come into fruition.
The reason that this protocol is not incredibly popular can be attributed to compatibility (e.g. Apple Safari and iOS devices do not support it) and other related issues.
Pros of Using MPEG-DASH:
- Adaptive: What keeps DASH relevant is its support for adaptive bitrate streaming, which is great for delivering high-quality streams to users with different internet speeds
- Open-source: MPEG-DASH is open-source and vendor-less, meaning that users can customize it to suit their specific needs
Cons of Using MPEG-DASH:
- Limited support: MPEG-DASH is not compatible with Apple devices/iOS which can be quite problematic for broadcasters
- Futureless: While there were once hopes of a future where DASH was a preferred protocol, the chances of this are growing slimmer and slimmer
How to Choose Video Protocols for Your Stream
To recap, there are many video streaming protocols in existence today, and many of these can be used for live video streaming. When it comes to what protocol to use for streaming media, the answer is, it depends on your specific needs.
As we covered above, all of the protocols discussed here have specific use cases for specific broadcasters. However, when taking everything into account, HLS comes out on top, especially in terms of codec compatibility, all-device compatibility, HTML5 video player native support, and adaptive-bitrate streaming capacity.
Our takeaway recommendation here is simple: for now, most broadcasters should stick to using HLS for delivery and RTMP for ingestion. HLS is our choice for video streaming standard for the best video streaming protocol.
Of course, some users may find other protocols better for their needs. However, whether you want to stream live video on your website, do live streaming of sports events or broadcast professional events and gatherings live, HLS is generally the best way to go.
Keep an eye out for SRT and WebRTC as they make their way to the forefront of the online streaming industry in the future.
YouTube Streaming Protocols
As we discussed, the video protocols you use will depend on your specific streaming setup. To give you a better understanding of how system requirements and other technology will contribute to your decision, let’s discuss the different protocol combinations you can use with YouTube.
YouTube uses an HTML5 video player, which means that HLS is the standard protocol for delivery. When it comes to ingestion on YouTube, there are four different protocol options. These include HLS, RTMP, RTMPS, HLS, and DASH.
Since we haven’t covered it already, it is worth noting that RTMPS is a variation of RTMP that has an added layer of security.
RTMP and RTMPS can be used for normal, low, and ultra-low latency streams. HLS and DASH are better for streaming in higher quality, but neither is capable of low latency streaming like RTMP and RTMPS.
RTMP is the most commonly used protocol for ingesting on YouTube.
Which protocol you use will depend on whether you value high-quality or low-latency. It will also depend on the compatibility of your streaming encoder and other broadcasting tools.
Although streaming protocols and related technology are a bit complex, they are totally approachable when broken down into smaller, more digestible ideas.
We hope this post has helped clarify the purpose of a protocol for video streaming and the relation between video streaming protocol, codec, and container format. We trust that you are equipped to choose and use the right video streaming protocol for your needs.
To test HLS streaming on the Dacast platform, we invite you to sign up for our 14-day free trial. That way you can get acquainted with the features before you commit.
Any questions? Let us know by leaving a comment below! We have experience with most kinds of live video streaming protocols, so we can probably help no matter what issues you’re experiencing. For exclusive offers and regular live streaming tips, join our LinkedIn group.
Thanks for reading and happy streaming!