To deliver high quality video content over the internet, you need a video streaming protocol. Different protocols serve different purposes, so when building a video streaming application, you will have to choose one that best suits your goals.
In this article, we explain what exactly a video streaming protocol is and offer an overview of the pros and cons of the most popular options available. Finally, we suggest which protocols will work best for specific use cases.
Let’s define the basic concept first.
What is a video streaming protocol?
A video streaming protocol is a set of rules and standards that govern video transmission. Streaming protocols are designed to ensure an efficient and reliable data transfer with minimal delay. They enable viewers to watch videos in real-time or with minimal buffering.
One of the crucial factors that has to be considered when choosing a video protocol is latency. This doesn’t mean, however, that the fastest protocol will be best for all purposes as low-latency options won’t always be supported by all endpoints. The below diagram offers more explanation:
There are several video protocols available, and each has its own advantages and disadvantages. The five most common include:
- Real-Time Messaging Protocol (RTMP)
- HTTP Live Streaming (HLS) protocol
- (Dynamic Adaptive Streaming over HTTP (MPEG-DASH) protocol
- Web Real-Time Communication (WebRTC) protocol
Let’s examine the pros and cons of each of them, one by one.
What is Real-Time Messaging Protocol (RTMP)?
This legacy protocol was developed by Adobe Systems for use with their Flash media server software, but has since become a popular standard for video streaming on the web. RTMP works by sending a continuous stream of data from a media server to a client, which can be a video player or a web browser.
With RTMP, you can enable real-time streaming of audio and video content. It comes in various formats: RTMPT (tunneled through HTTP), RTMPE (encrypted), RTMPTE (tunneled and encrypted), RTMFP (travels over UDP instead of TCP), RTMPS (encrypted over SSL). The protocol also supports a variety of codecs and bitrates, which allows for high-quality streaming:
- Video Codecs: H.264, VP8, VP6, Sorenson Spark®, Screen Video v1 & v2
- Audio Codecs: AAC, AAC-LC, HE-AAC+ v1 & v2, MP3, Speex, Opus, Vorbis
- Playback Compatibility: Flash Player, Adobe AIR and RTMP-compatible players only
- Latency: 5 seconds
Pros of RTMP:
- It’s designed to minimize the delay between sending and receiving data and doesn’t require buffering. This makes it ideal for live streaming applications like Twitch where low latency is critical.
- The protocol supports high-quality video and audio streaming, which makes it suitable for streaming large events, conferences, and other live content.
- It’s easy to integrate with existing systems and workflows, making it a flexible protocol that can be used with a wide range of video players and streaming servers.
- Drawbacks: Not optimized for quality of experience or scalability.
Cons of RTMP:
- It isn’t optimized for scalability, nor for quality of experience.
- Security wasn’t a priority feature when it comes to RTMP. Compared to other protocols, it can be more vulnerable to hacking and other security threats.
- RTMP may not work on all mobile devices or older browsers.
- While RTMP is a free protocol, some streaming providers charge extra fees for RTMP streaming.
What is HTTP Live Streaming (HLS) protocol?
HLS is a protocol for video streaming developed by Apple. It breaks the video streaming into small segments and uses HTTP streaming for communication, which allows for adapting the streaming bitrate in real-time to the available bandwidth. The client device can switch between different quality streaming formats depending on the current network conditions, which ensures a smoother viewing experience.
HLS is supported on a variety of devices, including desktops, laptops, mobile devices, and smart TVs. It’s used by popular video streaming platforms like Netflix, Hulu, and Amazon Prime Video. Two other variants are available: Low-Latency HLS, PHLS (Protected HTTP Live Streaming).
- Supported video codecs: H.265, H.264
- Supported audio codecs: AAC-LC, HE-AAC+ v1 & v2, xHE-AAC, Apple Lossless, FLAC
- Playback compatibility: all Google Chrome browsers; Android, Linux, Microsoft, and MacOS devices; several set-top boxes, smart TVs, and other players
- Latency: 6-30 seconds
Pros of HLS protocol
- Since HLS is widely supported by many devices, the content is easily accessible for the audience, and content providers can reach more viewers.
- HLS supports adaptive bitrate streaming, which ensures a better user experience and less buffering.
- The HLS protocol was designed to handle network congestion and buffering issues by using multiple parallel streams for reliable streaming and minimal playback interruptions.
- With HLS, content can be encrypted, which helps prevent unauthorized access and piracy.
Cons of HLS protocol
- When comparing HLS vs RTMP vs WebRTC, HLS has higher latency. This can be a concern for real-time applications like live sports. Also, with the adaptive bitrate streaming, it uses more bandwidth than non-HTTP streaming.
- HLS has a limit on the maximum streaming quality. Even with the aforementioned support for adaptive bitrate streaming, it cannot effectively transmit high-resolution videos like 4K or 8K.
- Since HLS is a complex protocol, it requires significant resources for encoding and decoding. This can be a challenge for small content providers who lack technical expertise and infrastructure.
- Some older devices may not support HLS streaming.
What is Dynamic Adaptive Streaming over HTTP (MPEG-DASH)?
As the name suggests, MPEG-DASH enables adaptive bitrate streaming of media content over HTTP. The standard was developed by the Moving Picture Experts Group (MPEG). MPEG-DASH is compatible with multiple devices and browsers, including smartphones, tablets, laptops, and smart TVs. It also supports closed captioning, multiple audio tracks, and content protection using digital rights management (DRM) systems. A variant with common encryption is also available (MPEG-DASH CENC).
- Video codecs support: Codec-agnostic
- Audio codecs support: Codec-agnostic
- Playback compatibility: Android devices; most post-2012 Samsung, Philips, Panasonic, and Sony TVs; Chrome, Safari, and Firefox browsers
- Latency: 6-30 seconds
Pros of MPEG-DASH:
- Since MPEG-DASH is an international standard for adaptive bitrate streaming, it’s vendor-independent.
- Comparing MPEG-DASH vs RTMP vs WebRTC, MPEG-DASH has lower latency. This is because it uses HTTP to stream the content, which allows for faster and more efficient delivery.
Cons of MPEG-DASH:
- MPEG-DASH has limited support for digital rights management (DRM) technologies, which can be a concern for content providers who want to protect their content from piracy.
- Implementing MPEG-DASH can be more challenging compared to other streaming protocols as it requires more complex encoding. This can also lead to increased costs for content providers.
- Lack of support for iOS and AppleTV
What is Web Real Time Communication (WebRTC) protocol?
WebRTC is a popular open-source project that allows real-time communication between web browsers and mobile applications through a set of APIs. This modern video protocol is used for video conferencing, peer-to-peer file sharing, and live streaming.
- Video codecs support: H.264, VP8, VP9
- Audio codecs support: Opus, iSAC, iLBC
- Playback compatibility: Chrome, Firefox, and Safari, no plugins are required
- Latency: Sub-500-millisecond delivery
Pros of WebRTC:
- The protocol is free to use and can be customized and extended according to the user's needs.
- It’s browser based and ensures minimal latency, making it perfect for live streaming.
- WebRTC’s support for high-definition video and high-quality audio streaming offer the best viewing experience. The protocol automatically adjusts the video quality based on network conditions.
- Video and audio streams via WebRTC are encrypted end-to-end, which ensures that the content is secure and cannot be intercepted or modified by unauthorized users.
- WebRTC is easy to use and can be integrated with web browsers and mobile applications through simple APIs.
Cons of WebRTC:
- The protocol can create issues with firewalls and NAT (Network Address Translation) traversal, which can make it difficult to establish connections between peers in some network configurations.
- Guaranteed delivery of packets isn’t supported by WebRTC, which may cause losses or delays during transmission. This can result in choppy or interrupted video streams.
- WebRTC is not designed for large-scale live streaming events, but video conferencing. While it can work for small to medium-sized events, it may not be suitable for events with a large number of viewers.
Here’s a quick glance at the protocols with our concise suggestions of when to choose which streaming format:
- RTMP: ideal for building interactive features and transmitting live events such as sports, concerts, and news broadcasts, as long as you opt for a provider that doesn’t charge extra for RTMP streaming.
- HLS protocol: best for Apple devices, allows for adaptive bitrate streaming.
- MPEG-DASH protocol: similar to HLS, but it is an open standard that can be used across a wider range of devices and platforms.
- WebRTC protocol: open-source option, super-fast, but suitable for live streaming at small scale only.
Building a media streaming application with RST
I’m hoping that this article helped you understand the key differences between the video streaming protocols available. If you still struggle to make the right choice, or have additional questions about building media streaming applications, contact me directly and I’ll have your queries answered by one of our technical experts. Feel free to also explore other materials on this topic on our dedicated blog page.