Video Streaming enjoys wide popularity. Observers state that 80% of consumers of content prefer a video over a blog. This indicates video streaming is becoming more popular. You need to do plenty to implement video streaming in an app though. Among other tasks, you need to choose the right video streaming protocol. What are video streaming protocols? How do they differ from other common terms like codecs and container formats? How do you choose a suitable video streaming protocol? Which are the commonly used video streaming protocols? Read on, as we discuss these in this guide.
Video streaming protocols: What they are
Video streaming protocols are codified software programs that contain standardized rules for delivering video files over the Internet. A video streaming protocol breaks up video files into chunks. It sends them to viewers, and it reassembles the original video file from the chunks.
A note about protocols in the context of software systems: Protocols in the world of software systems refer to a collection of rules. These rules govern the transmission of data from one communication system to another. Protocols belong to different layers. The International Organization of Standardization (ISO) defines 7 such layers, namely, physical, data link, network, transport, session, presentation, and application. E.g., IP (Internet Protocol) is a protocol at the network layer. To take another example, TCP (Transmission Control Protocol) is a protocol at the transport layer.
Video streaming protocols can be in the application, presentation, and session layers. We now look at why you need them.
Your application will primarily perform two tasks concerning digital video files. It will store them, and it will play them back. The key considerations here are the size of the file and the ability to play it back universally.
However, most of the digital video files don’t cater to video streaming by default. Streaming refers to the transfer of video files from the encoder to the streaming host, and then from the host to the video player.
Your application will first need to convert a video file into a “streamable” file. It needs to break the file into small chunks. Your app will then send these chunks to viewers sequentially, and it will need to play them back. Video streaming protocols enable your application to do this.
How do video streaming protocols differ from codecs and container formats?
You might often hear terms like streaming video protocol, video codecs, and video container formats in the same conversation. They are different though. A video streaming protocol is a codified set of rules and standards to deliver video files over the Internet.
On the other hand, the term “codec” means video compression technology. The term refers to a combination of “coder” and “decoder”. You use a “codec” to make a video file smaller than what was recorded. A “codec” saves space by compressing video files.
Different video streaming protocols support specific codecs. You might use different codecs for various purposes, e.g.:
- You could use Apple ProRes for video editing;
- 264 is a common video codec for online video.
We often call a “container format” as “format”. It functions as a box containing a video file, an audio file, timing information, subtitles, and other metadata. A container format facilitates the transmission of video content.
Video streaming technology uses chunks of a video file. Container formats define how content is stored inside these chunks. A few examples of “container formats” are “.mp4”, “.m4v”, and “.avi”.
Which factors should you consider when choosing a video streaming protocol?
Your choice of the video streaming protocol depends on your app development requirements. You need to keep the following factors in mind when choosing a protocol:
- Video Codec requirements;
- Whether a protocol is proprietary or open-source;
- The quality of the experience of viewing video content, i.e., whether the protocol is adaptive bitrate-enabled;
- Playback support;
- Type of use, i.e., first-mile contribution vs last-mile delivery.
A few commonly used video streaming protocols
The following are a few commonly used video streaming protocols:
1. Real-Time Messaging Protocol (RTMP)
Real-Time Messaging Protocol (RTMP) has been a very popular video streaming protocol for a long time. Open standards and Adaptive Bitrate Streaming (ABS) have now reduced the popularity of RTMP. Macromedia had developed it, Subsequently, Adobe acquired the company in 2005.
The following are key points about RTMP:
- Video codec supported: H.264, VP8, VP6, Sorenson Spark, Screen Video v1, and Screen Video v2;
- Audio codec supported: AAC, AAC-LC, HE-AAC+ v1, HE-AAC+ v2, MP3, Speex, Opus, and Vorbis;
- Playback compatibility: Limited;
Note about the compatibility of RTMP: Only RTMP-compatible players support this protocol. However, there aren’t that many anymore. Flash supported this, and Adobe stopped supporting it in 2020.
RTMP offers the following advantages:
- Low latency;
- No need for buffering.
RTMP has the following disadvantages:
- Interruptions due to low bandwidth;
- The inability to offer great user experience and scalability;
- Security issues resulting in some firewalls blocking RTMP connections;
- Standard stream delays between 5 to 30 seconds.
The different variant formats of RTMP are as follows:
- RTMPT: Tunneled through HTTP;
- RTMPE: Encrypted RTMP;
- RTMPTE: Tunneled and encrypted;
- RTMPS: Encrypted over SSL;
- RTMFP: It travels over UDP.
2. HTTP Live Streaming (HLS)
Apple developed HLS (HTTP Live Streaming), a popular video streaming protocol. It was released in 2009. Earlier, HLS would support only devices from Apple like iPhones and iPads. It now supports a wide range of platforms. At the time of writing, HLS streaming is widely used by professional broadcasters.
The following facts about HLS are notable:
- Video codec supported: H.265, H.264;
- Audio codec supported: AAC-LC, HE-AAC+ v1, HE-AAC+ v2, xHE-AAC, Apple Lossless, FLAC;
- Playback compatibility: Supported by a wide range of browsers and operating systems like Google Chrome, Android, Linux, Windows, Linux, macOS, smart TVs, etc.
The advantages offered by HLS are as follows:
- A wide range of operating systems and platforms support HLS.
- Firewalls don’t commonly block content delivered using HLS.
- HLS works well with ABS (Adaptive Bitrate Streaming).
- Apple keeps adding key features to HLS, which makes this protocol more powerful.
HLS has prioritized the quality of the streaming experience over keeping the latency low. The latency of HLS is its only notable disadvantage, and you need to tune it to reduce latency.
The different variant formats of HLS are as follows:
- Low-latency HLS;
- PHLS (Protected HTTP Live Streaming).
3. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
The Moving Pictures Expert Group (MPEG) developed Dynamic Adaptive Streaming over HTTP (DASH) in 2010-2011. It published MPEG-DASH as a standard in 2012. MPEG-DASH is an open-source industry-standard alternative to HLS. It provides a stiff completion to HLS.
Note the following quick facts about MPEG-DASH:
- Video codec supported: MPEG-DASH is codec-agnostic.
- Audio codec supported: This video streaming protocol is audio codec-agnostic.
- Playback compatibility: A wide range of platforms support MPEG-DASH. Examples are Android devices. Most of the post-2012 Samsung, Panasonic, Philips, and Sony TVs support MPEG-DASH. Popular browsers like Chrome, Safari, and Firefox support this protocol.
The advantages offered by HLS are as follows:
- MPEG-DASH is an open-source video streaming protocol.
- Most of the platforms support it, and it’s independent of any vendor.
- It’s an internationally accepted standard for ABS (Adaptive Bitrate Streaming).
- MPEG-DASH matches HLS as far as features, performance, and the quality of streaming experience is concerned.
Apple doesn’t support MPEG-DASH on its platforms like iOS and Apple TV. That’s the only notable disadvantage of MPEG-DASH. Also DASH is used for react native video playback.
MPEG-DASH has another variant. It’s MPEG-DASH-CENC, where “CENC” stands for “common encryption”.
4. HTTP Dynamic Streaming (HDS)
Adobe developed HDS (HTTP Dynamic Streaming) in 2009 on the foundation of RTMP. HDS is compatible with the adaptive bitrate protocol, and it was used with Flash Player. Adobe doesn’t support Flash anymore. This has reduced the popularity of HDS, and we anticipate it will not have much use in the future.
The following key facts about HDS are notable:
- Video codec supported: H.264, VP6;
- Audio codec supported: AAC, MP3;
- Playback compatibility: Limited since Adobe doesn’t support Flash anymore;
HDS supported ABS, and it worked well with Flash. These were its advantages. HDS is proprietary technology though, and support for it will likely discontinue. That makes it unsuitable for most purposes.
5. Microsoft Smooth Streaming (MSS)
Microsoft developed MSS (Microsoft Smooth Streaming), a video streaming protocol in 2008. The company built this proprietary protocol for use with Silverlight player applications. MSS supported ABS on Microsoft devices. Its strong content protection features helped to prevent piracy, and it was used for TV. MSS can’t compete with the popular HTTP-based video streaming protocols. We don’t expect it to be supported for much longer.
6. Real-Time Streaming Protocol (RTSP)
Real-Time Streaming Protocol (RTSP) is a traditional streaming protocol like RTMP. Developers don’t use it much for video playback since Android and iOS devices don’t have RTSP-compatible video players. IP cameras support RTSP. Therefore, CCTVs (Closed-Circuit Televisions) used for surveillance still use RTSP.
We discussed what video streaming protocols are and what they do. We talked about how these protocols differ from codecs and container formats. You need to consider several factors to choose a video streaming protocol, and we talked about them. We also reviewed commonly used protocols.
Supercharge Your Business with Videos
At VdoCipher we maintain the strongest content protection for videos. We also work extremely hard to deliver the best viewer experience. We'd love to hear from you, and help boost your video streaming business.
Head of Digital Marketing at Vdocipher. I love the art of connecting the right product to their users. When i’m not doing that i love getting lost in books.