Before diving into the tecky parts, it’s important to understand why streaming protocols are so important and why we need them. Zero Gravity Marketing wrote a blog piece that includes some interesting statistics regarding live streaming. So, according to them:
Also, according to Cisco, 2021 predictions are that 82% of all internet traffic is video. Live streaming gains more and more from that percentage each year. Why? Because it’s fresh, personal and satisfies our social needs more than videos.
What is the Streaming Protocol?
Streaming is the technology that allows the delivery of content to various devices over the internet. The protocol is a set of rules that govern the way data travels from one communication system to another, for example, from your PC to someone else's mobile device.
Simply put, the streaming protocol is a standardized method for delivering multimedia data over the internet. Multimedia data refers to audio and/or video information that is transmitted over the internet. This is how you can have a video call from anywhere as long as you have access to the internet.
A streaming protocol can be also defined in a more simple manner, as "a specific method of sending Chunks of content from one device to another."
Streaming Protocol VS Codec
In order to better understand streaming protocols, we need to take a look over the codecs. Let’s start from the basics:
Codec = compressor / decompressor
A video = usually 30 frames / second - Lossless JPEG - around 3Mb / frame -> 1 second of video = 180MB -> 10GB / minute of video !!!!
But have you ever seen a video that has 10GB/min? Well, NO, hopefully. This is due to the codec.
a codec uses mathematical algorithms to intelligently discard data that is not really important - example - while live streaming, I may be moving (data about me changes) but the background does not -> the coder updates information about me not my background.
these are independent of the way the data is being sent between devices = streaming protocol
What are the Transport formats?
= a container that encapsulates all needed information, such as compressed video, compressed audio, subtitles - mp4, mpeg-ts
it defines how the data is arranged in each chunk of data sent
Congrats, you’ve learned all the basics!
Now, let’s check the Timelines in a nutshell
PAST - What were the Streaming Protocols?
Real-Time Messaging Protocol = RTMP:
developed by Macromedia = Adobe now and released in 2002 (AMS Server)
TCP based - benefits: low latency
developed to be the means of communication between a flash player and a server (Adobe Media Server)
multiple communication channels
Video codec: FLV1 and Audio codecs: MP3 AAC
Real-Time Streaming Protocol = RTSP:
the main purpose was to send real-time commands from users - such as play or rewind
could be used for streaming video and audio as well
compatibility - iDevices don’t support it
CDN doesn’t support it
might encounter firewall issues - port 1935 used, not 80
Microsoft Smooth Streaming:
Microsoft developed it in 2008
Video codecs: H.264, VC-1, Audio codecs: AAC, WMA
Playback support: xBox, Windows Phone, SmartTV’s
Want to read more on this topic? Check these details on RTMP and RTSP
PRESENT - What are we using now as Streaming Protocols?
Apple Http Live Streaming = HLS:
Most widely used
Adaptive bitrate and uses HTTP servers
Video codecs: H.264, H.265 / HEVC (added to the HLS protocol in spring 2017) Audio codecs: AAC, MP3
Transport/package format: MPEG-2 TS
Inherently built-in latency ±20 seconds
HTTP Dynamic Flash Streaming:
Adaptive bitrate RTMP - response to HLS
Lowest latency in the industry
Preferred over HLS - when unavailable, HLS should be pushed
Video codecs: VP6, H.264 Audio codecs: MP3 AAC
MPEG - DASH = 3GPP:
One of the latest protocols
Uses standard HTTP servers
Video codecs: H.264, H.265 / HEVC (the next-generation successor), WebM, VP9/10 Audio codecs: AAC, MP3 - although it’s codec agnostic
TS: MP4 fragments, MPEG-2 TS
Not natively supported via HTML5
FUTURE - What is coming ahead as Streaming Protocols
Regarding the future of streaming protocols, nowadays everyone is raving about WebRTC. This is the new kid on the block. It's new, fresh, different and attracts more and more industries.
WebRTC Is actually one of the newest streaming protocols on the market and it brings a lot of potentials.
It’s still very new, but it has generated a lot of trust in the community. The giants are already using it: Google, Facebook, Skype.
Supports adaptive bitrate
Supported by all browsers - by the international standard - and also other platforms - via VoIP removing the need for Softphones