The point of this article is to do a little comparison of the popular and deprecated/old video streaming formats. Hopefully this will allow you to make a decision as to which is best for your streaming application.
This article applies to products like:
- Zycast HDIP800RJ Live Online Streamer
- Pro2 HE01, HE02 (encoders) and HE04D (decoder)
- Zycast CT2IP8032 DVB-T to IP Encoder
- Zycast HDIP8000 8-input to IP streaming server
- Zycast HDIP800 Single input to IP local streamer
- Zycast HDIP-404DHP 4-input to HLS/MPEG-DASH modulator
-
RTMP - Real-Time Messaging Protocol
- Comes from the Adobe Flash stable of products
- Works with YouTube Live, Facebook Live, Twitch, Periscope and so on
- TCP-based protocol, uses port 1935 by default
- Requires a dedicated streaming server
- Latency of around 5 seconds, similar to that of cable TV broadcasts
- Not scalable (1-1 connections, typically) and not optimized for quality of experience
- With the live CDNs above (YouTube Live and so on), you serve the RTMP/RTMPS stream to them, and they handle the one-to-many streaming using different protocols
- Adobe won't update Flash after the end of 2020
-
RTMPS
- As above, but using TLS/SSL security protocols
-
HDS - HTTP Dynamic Streaming
- Adobe's next step from RTMP
- Flash-based (uh oh) but with adaptive streaming
- Low latency (5-10 seconds or so), but not as good as RTMP
-
RTSP - Real-Time Streaming Protocol
- Similar to HLS (discussed below)
- Designed for low-latency (2 seconds or so) streaming for things like IP-camera feeds, IoT devices and so on
- Not great browser-support for RTSP (generally involves conversion via an intermediate server to some other format like RTMP, HLS, etc.)
-
MPEG-DASH - Dynamic Adaptive Streaming over HTTP
- Supports adaptive-bitrate streaming, so that anyone viewing will get the best video quality that their internet connection can produce
- Works with a huge range of codecs
- Limited support for Apple iOS and Safari devices
- High latency of 30 seconds or more
-
HLS - HTTP Live Streaming
- This one came from Apple, specifically designed so that they didn't have to support Flash on iPhones
- Most widely-used streaming protocol today
- Supported by phones, browsers, smart TVs and a lot more
- Has adaptive-bitrate streaming support
- Now supports H.265 codecs, so you're getting twice the video quality for the same file size as H.264
- Latency is high at 20-30 seconds or worse (more on this below) - encoding, transcoding, distribution, default playback buffer and more
- Not ideal for streaming an event/service time-critical events (like horse racing, or New Year's Eve), but works well for everything else.
-
LL-HLS - Low Latency HLS
- Originally Twitter's Periscope platform came up with LHLS, a proprietary offshoot from HLS that reduced latency to around 2-5 seconds
- In 2019, Apple announced LL-HLS as a more open version to get those times down to the 2-5 second range
- Not broadly used (as of June 2020), but likely to become a big player
-
Web-RTC - Web Real Time Communication
- Lowest latencies, at under a second
- Designed purely for real-time viewing
- Think of a PTZ camera control
- Or a web conference or video chat
- Supported mainly by web browsers
- Not designed to push content to a lot of viewers, so not suitable for things like live sports broadcasts
From a 2019 streaming report, made by the experts at https://www.wowza.com/blog/streaming-protocols, we have:
Comments
0 comments
Please sign in to leave a comment.