Video Streaming Protocols: What Are They & How to Choose The Best One
Understanding legacy and modern streaming protocols will enable you to make an informed choice for your next video project.
As consumers cut the cord and opted to stream content from their mobile devices and smart TVs, the market for video streaming platforms exploded. Originally used to broadcast live sports in the '90s, as video streaming protocol technology developed, Flash and RTMP-based streaming gained traction. A few more years of improvements brought us YouTube and Netflix, but the launch of Vine was what made video streaming a native feature of all our favorite social media apps.
The livestream market is vibrant and rapidly evolving, extending its benefits to new industries, platforms, and use cases, including telehealth, remote learning, virtual events, and video game streaming.
Along with these developments, the options for video streaming protocols have also grown. We'll bring you up to speed with a high-level look at the three main types of streaming protocols and the nine developers prefer.
What is a Video Streaming Protocol?
A streaming protocol is a set of rules that define how data communicates from one device or system to another across the Internet. Video streaming protocols standardized the method of segmenting a video stream into smaller chunks that are more easily transmitted.
A codec is the part of a video streaming protocol that makes your files smaller by deleting unimportant information. For example, when a codec processes a video with a still background that remains the same for a minute. After the first frame, it discards the redundant visual information for each pixel and simply keeps a reference to reduce storage instead. Container formats, like MP4 and FLV, define how the video stream data, generally video files, audio files, and metadata, is stored once the protocol has transmitted it.
Understanding the Different Types of Protocols
Knowing if your protocol of choice is compatible with your user's favorite streaming devices is important. Each protocol serves a purpose and brings a unique set of strengths, like low latency or high adaptability. The nine preferred protocols we will cover later on will fall into one of these three categories:
Legacy Protocols: Legacy protocols use Basic Authentication (usernames and passwords required by the app) to connect to email clients, calendars, and web services.
HTTP-Based Protocols: A request-response protocol, HTTP allows users to interact with web resources such as HTML files by transmitting hypertext messages between clients and servers.
Modern Protocols: Typically open-source and not yet widely supported, modern protocols are cutting-edge technologies that solve some of the problems preceding video streaming protocols have had.
9 Common Streaming Protocols
The nine video streaming protocols below are most widely used in the development community. Read on to learn more about each of these protocols and their types, advantages, and disadvantages.
1. HTTP Live Streaming (HLS)
HLS is the most popular streaming protocol available today. Apple originally released it as part of their efforts to drop Flash from iPhones. It is compatible with nearly every device, from desktop browsers, smart TVs, set-top boxes, Android and iOS mobile devices, and even HTML5 video players, allowing streamers to reach a broader audience. HLS relies on ABR, which enables the video stream to appear clearly, but the major drawback of the HLS protocol is its high latency level.
- Compatibility: The HLS protocol is suitable for streaming to practically any internet-enabled device and operating system.
- Security: HLS is known for its secure streaming.
- Quality: HLS leverages adaptive bitrate streaming (ABR) technology to produce ultra-high-quality video streams.
- Latency: HLS cannot maintain as low of latency as some of the other preferred protocols, resulting in poor video quality.
- Poor Ingest: HLS isn't the best option for ingest since HLS-compatible encoders are not accessible or affordable.
2. Dynamic Adaptive Streaming over HTTP (MPEG-DASH)
MPEG-DASH was developed by the Moving Pictures Expert Group (MPEG) as an alternative to the HLS standard. It is an open-source standard, making it highly customizable for any audio or video codec. Like HLS, MPEG-DASH supports adaptive-bitrate streaming, allowing viewers to receive the best quality video their network can handle
- Adaptability: This protocol leverages ABR to stream at a high video quality over different Internet speeds and conditions.
- Customization: MPEG-DASH is open-source, enabling users to tailor it to meet their unique streaming needs.
- Limited Compatibility: MPEG-DASH is not compatible with Apple devices/iOS, which significantly limits the reach of broadcasts.
- Obsolescence: While this protocol was once very popular, its limitations make it difficult to fairly compete against the wide variety of other advanced protocol options.
WebRTC is an open-source project that delivers video streams to viewers with real-time latency. Initially developed for text-based chat apps and VoIP usage, its popularity has grown among video chat and conference app developers after being purchased by Google. The WebRTC protocol is a low-latency streaming solution that relies on peer-to-peer streaming (P2P); it is utilized by some of the most used apps like Google Meet, Discord, Houseparty, WhatsApp, and Facebook Messenger.
- Modern Protocol
- Flexibility: Since WebRTC is open-source, it is flexible enough that developers can customize it to suit their specific streaming requirements.
- Real-Time Latency: WebRTC supports streaming with real-time latency, which means that broadcasted video travels to viewers' screens in real-time at a high video quality.
- Limited Support: The WebRTC video streaming protocol has only recently been adopted as a web standard. The market has not had much time to adapt, engineers might encounter compatibility issues with this streaming setup.
4. Secure Reliable Transport (SRT)
The SRT protocol is an open-source standard developed by streaming technology provider Haivision. Known for its security, reliability, compatibility, and low-latency streaming it is the preferred protocol for members of the SRT Alliance. This protocol does not rely on a single codec, which allows developers to pair it with any audio and video codecs they desire.
- Modern Protocol
- Security: This protocol features top-notch security and privacy tools that allow broadcasters to rest assured their streaming content and viewers remain safe.
- Compatibility: SRT is device and operating system agnostic, making it highly compatible and able to deliver streams to most Internet-enabled devices.
- Low Latency: The SRT streaming protocol features low-latency streaming thanks to the support from error correction technology.
- Limited Support: Similar to WebRTC, SRT is still considered futuristic, the larger streaming industry will need some time to evolve before this video protocol becomes standardized.
5. Real-Time Messaging Protocol (RTMP)
RTMP is a legacy protocol developed by Adobe to transfer audio and video files between a streaming server and the Adobe Flash Player. With the phasing out of Flash, it has shifted its primary use case away from viewer-facing content delivery and toward ingesting live streams through RTMP-enabled encoders. This means the video feed from the encoder is sent to the streaming platform via the RTMP protocol before it is delivered to the end user through the common HLS protocol.
- Legacy Protocol
- Low Latency: RTMP ensures live video streams maintain a stable connection for the viewer, even if the internet connection is unreliable. It also allows them to easily resume the stream once their internet connection stabilizes.
- Adaptability: This protocols stream feed is adaptive and hosted on an RTMP server, meaning viewers can skip and rewind parts of the feed or join a live stream after it's begun.
- Flexibility: Developers can integrate a variety of video formats, like audio, video, and text, into one cohesive package with the RTMP protocol. It also allows them to leverage multiple media channels, streaming on MP3 and AAC for audio or MP4, FLV, and F4V for video.
- Limited Support: Flash is a format quickly becoming obsolete, with HTML5 players taking its place. Flash currently supports RTMP, and this protocol cannot play on HTML5 players without a converter, like an HTTP-based video protocol.
- Low Bandwidth: RTMP streams are vulnerable to bandwidth issues, causing frequent, frustrating live stream interruptions that negatively impact UX.
6. Real-Time Streaming Protocol (RTSP)
RTSP is a legacy protocol originally developed with entertainment in mind, its primary use is establishing and controlling media sessions, like tv and movies, between endpoints. This protocol is similar to HLS, it cannot transmit live streaming data alone and require RTSP servers to work together with RTP and other protocols to accomplish their streaming tasks. The RTSP protocol supports low-latency streaming but is not compatible with most devices and browsers. It can deliver low-latency streaming to a select group of small audiences from a dedicated server, making it a standard for video surveillance and CCTV systems.
- Legacy Protocol
- Segmented Streaming: Viewers are not required to download an entire video before watching it, the RTSP stream allows them to watch content before the download is complete.
- Highly Customizable: You can create your own video streaming applications by utilizing other protocols, such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).
- Low Popularity: RTSP is far less popular than the other protocols in this list, as most video players and streaming services do not support RTSP streaming.
- HTTP Incompatible: You cannot directly stream RTSP over HTTP, meaning there is no easy way to stream RTSP in a web browser. RTSP is designed for streaming video on private networks, like security cameras within a business, but developers have the option to embed addition additional software into their website to stream with this protocol.
7. Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) is one of the earliest, most foundational networking protocols, and it's used extensively by core internet applications such as the World Wide Web (HTTP), email, File Transfer Protocol (FTP), and others. It prioritizes an accurate delivery over a speedy one, offering a highly reliable, end-to-end byte stream over an unreliable network. This dependability is made possible by positive acknowledgment with retransmission (PAR). TCP is compatible with RTMP, RTSP, HLS, and MPEG-DASH.
- Internet Protocol
- Highly Reliable: Guarantees data delivery to the destination router, making it a reliable protocol.
- Limited Errors: Offers extensive error-checking mechanisms using flow control and data acknowledgment. Even if data packets arrive at a recipient's IP address out of order or pieces are missing, the protocol communicates with the sender to ensure each piece arrives where it should be.
- Slow Speed: The reordering and retransmission of the data packet cause TCP to transmit slowly.
- Heavy Protocol: TCP requires three packets to set up a socket connection before sending data.
8. User Datagram Protocol (UDP)
User Datagram Protocol (UDP) is a connectionless protocol with minimal mechanisms. It doesn't require recipients to let the sender know that all data packets have arrived, which can make it unreliable. This protocol is stateless and ideal for transmitting data to large numbers of clients. UDP features multicast support for service discovery and broadcasting. Its low rate of retransmission delays makes it the perfect match for real-time applications such as Voice Over Internet Protocol (VoIP), online games, and live video streaming. UDP is compatible with SRT, WebRTC, RTSP, and RTP.
- Internet Protocol
- Speed: Since data is processed in order of arrival, UDP is fast because integrity is checked at the arrival time using checksum.
- Lightweight Protocol: UDP is considered a lightweight protocol because there is no tracking of connections, ordering of messages, etc.
- Connectionless: UDP isn't connection-based, so one program can send several packets to another simultaneously.
- Inaccuracy: Data packets sent via UDP streaming might be missing or out of order, resulting in a few frames missing or a slight glitch in audio during a live stream which could impact the user experience.
- Basic Error Checking: Performs basic error checking and discards erroneous packets without attempting error recovery.
9. Session Initiation Protocol
Session Initiation Protocol (SIP) is a signaling protocol used to initiate, maintain, modify, and terminate real-time communications between Internet Protocol (IP) devices. SIP enables the Voice Over Internet Protocol (VoIP) by defining the messages sent between endpoints and managing the actual elements of a call. SIP supports voice calls, video conferencing, instant messaging, and media distribution.
- Signaling Protocol
- Flexibility: SIP works independently of the type of session or the media used. SIP can accommodate multiple users with differing capabilities. For instance, in a conference that has some users with video capability and some only with audio capability, the video users can see each other. They do not have to drop down to audio only, as with other protocols.
- Customization: It is an open standard, allowing multivendor support and integration. Applications can be written to customize SIP uses.
- Easy Maintenance: SIP messages are clear text, making troubleshooting easier.
- New and Niche: SIP is a fairly new protocol, so fewer people understand it than the older protocols. Be sure you have trained support personnel if you intend to implement SIP within your network.
- Development In Progress: SIP features are still being developed, and many vendors have proprietary protocol implementations.
How to Choose the Right Protocol for Your Video Stream
Now that you are familiar with the top protocol options available, your choice of video streaming protocols comes down to certain key factors. Depending on the goals of your app, you may prioritize a wider audience reach over minimized latency. Let's take a closer look at the five primary factors that may impact your choice of protocols.
A protocol's compatibility with other devices means more viewers can access and engage with your content in their preferred format. If you want your streaming efforts to reach the widest possible audience, you should look at protocols that are compatible with the highest number of devices, platforms, and browsers.
To ensure high device compatibility and broad audience reach, we suggest the HLS protocol.
Although HLS reaches a broad streaming audience, it is known for its issues with latency. Latency can severely impact the streaming experience of viewers and cause them to abandon your video stream if the latency is too high. RTMP provides low latency streams but is not compatible with HTML5 video players.
If low latency is your priority, we suggest the SRT protocol, which is capable of low latency streams, or the WebRTC protocol, which offers real-time latency.
3. Privacy & Security
The privacy and security of video live streams can cause great concern for information-sensitive industries like telehealth, teletherapy, and remote education. If your app falls into one of these industries, you'll need a security-minded streaming protocol with privacy features.
Most protocols provide secure streaming, but the SRT protocol comes with best-in-class security and privacy features.
4. Adaptive Bitrate
Regardless of the end user's Internet connection or speed, adaptive bitrate streaming enables the video to preserve the integrity of its stream. This could apply to apps that offer appointments users might be taking on the go or stream live events viewers don't want to miss a second of.
If you want to bolster your video with ABR, we suggest the HLS or MPEG-DASH, as both protocols support this feature.
Your choice in protocols can often come down to budget. You should predict and compare the costs of each protocol that suits the rest of your business needs to ensure they are within your budget. If you are building a video streaming platform in-house, you must also consider infrastructure, transcoding, content delivery, and playback costs.
We suggest the HLS and MPEG-DASH protocols, as those that use HTTP servers are more cost effective than traditional protocols.
Frequently Asked Questions
1. What video protocol does YouTube use?
YouTube leverages the MPEG-DASH video format over an HTTP Livestreaming (HLS) protocol. It also utilizes TCP as a transport layer.
2. What secure protocol is recommended for voice and video?
The SRT protocol adds encryption using AES to ensure that all the video and audio are confidential through the network, making it a popular choice for businesses concerned with secure voice and video communications.
3. Which protocol is used for video conferencing?
Video conferencing software typically uses TCP because it provides packet sequencing, prevents packet loss, and provides retransmission.
4. What streaming protocol does Netflix use?
Netflix uses MPEG-DASH protocol for streaming and TCP as the transport layer protocol.
5. What is the best protocol for transferring video through a network?
There is no one "best" protocol for transferring video through a network, as it entirely depends on the broadcaster's priorities for the stream. However, HLS is considered a top protocol because it is highly compatible, leverages ABR to deliver a high-quality stream, and does not compromise security.
6. Is TCP or UDP best for streaming video?
Both TCP and UDP streaming protocols come with a unique set of advantages and disadvantages. What would make either one the “best” is based on the priorities of your video stream. TCP is the best option for streaming video reliably with limited errors, while UDP is the better option for speedy transmissions that are ok with errors.
Ready to Get Streaming?
Although most video streaming protocols and related technology are complex, they can be approachable when broken down into smaller, more digestible ideas. We covered the purpose of streaming protocols, the three major types, gave an overview of the nine primary protocols, and our suggestions based on five different criteria. Armed with information, you are now ready to choose the right protocol for your project and start streaming.
- Setting Background Modes and Device Capability Privacies in iOS Apps
- HTTP, WebSocket, gRPC or WebRTC: Which Communication Protocol is Best For Your App?
- Building a Video Chat App: WebRTC on Android (Part1)
- Building a Video Chat App: WebRTC in Jetpack Compose (Part2)
- Debugging WebRTC Calls with Google Chrome
- Using PushKit Notification: How To Show an Incoming Call on a Device