It is perhaps an understatement to say that live video streaming as a technology has seen a rapid explosion in use over the last few years. High quality video streaming has made a presence in a number of our day to day activities such as:
- Games with live streaming video content to concurrent users
- Platforms that stream high quality video on-demand (VOD)
- Apps that enable live online video chats
- News outlets, sports and live events broadcasters presenting live
- Live video Q&A such as on YouTube powered by HTTP Live Streaming (HLS)
In fact, a report from streaming tools provider StreamElements and the metrics tracker Arsenal.gg showed that the live streaming industry grew a whopping 12 percent in 2019. Facebook Gaming accounted for much of this growth with a 210 percent increase in hours watched. Twitch, the live streaming platform for gamers saw a 3 percent increase in hours watched since December 2018.
This boom in live streaming video has been enabled by the growth of content delivery networks (CDN) and CDN providers. This technology is what allows the online video stream to be delivered to users across the globe, at low latency and in real-time.
What is a CDN?
A Content Delivery Network (CDN) is a network of servers and their data centers distributed across the globe for the purpose of delivering high-quality content with minimal latency for a seamless consistent user experience. A CDN brings the content closer to the end users through strategically located data centers called Points of Presence or PoPs.
The Different Types of CDNs
The type of CDNs you use can vary depending on the specific services they specialize in. In general, CDNs can be peer-to-peer (P2P) or Private CDNs.
Peer-to-peer or P2P network CDNs
P2P network CDNs involve individual systems that have been opened up to allow a server to download files from. The server that enables it is called a tracker, although it can be a small network of servers as well. Think of a common file sharing platform like BitTorrent where a user looks for specific files to download. Instead of downloading it from a single server, the tracker will search for multiple computers that contain the same file and download different parts of the file from each system. This way, P2P CDNs are very decentralized in their nature but there can be security risks associated with this type of model.
Private or Peering Model CDNs
The private or peering type of CDNs are those where the a company owns the network and maintains the servers across their area of coverage. Instead of relying on a decentralized model, peering/private CDNs control their servers that house the content of a website. When visitors land on the website, the files will be downloaded from the server that is physically closest to them.
Another way to categorize CDNs is based on whether they are push or original pull.
These are CDNs where the user, or the primary server pushes the content to the CDN. It essentially works like a secondary server with the user uploading content directly to the CDN. Users can specify what content to upload and when they are to be updated or expired. This type of CDN is useful when you want to control traffic and how it is used since uploads need to happen only when there is a change.
Origin Pull CDNs
In origin pull CDNs, the user does not push the files to the CDN but instead the reverse happens. The CDN pulls the content from the origin server where it is saved by the owner, before delivering it to the end user. Compared to push CDNs, origin pull CDNs can be slower and less flexible as there can be some redundancy in the traffic, especially when files are re-queried before changes are made. The benefit of using origin pull CDNs are that they are easier to set up and minimizes storage space.
What is Live Streaming?
Live streaming is the process by which data in the form of high quality video, audio and other media is transmitted from creators to users across the internet in real-time as and when it is created. Instead of downloading a large video file before playing it, live streaming lets users download the file a little bit at a time from a distance and play it back in real-time.
Essentially, live streaming is the technology that allows you to create, share and watch online videos in real-time. It can be done over the internet with connected devices like a laptop, phone, tablet or a website or app which allows live streaming. Think of popular consumer apps and features like Instagram Live, Facebook Live, Twitch and Tik Tok which lets you view online video content created by users as they are broadcasting live. Media files such as YouTube videos and vlogs are also technically streamed but not live streamed as the broadcast need not occur in real-time.
It is not just publicly viewable content that live video streaming is used for. They can also be set to private and accessible only to select users, like in the case of video conferencing tools like Zoom or Teams.
The rise of live streaming technologies have transformed the media and entertainment industry. From professional sports to news media, social media platforms and apps to video games, nearly every form of media and entertainment today involves some aspect of live video streaming.
How Does a Live Streaming CDN Work?
Live streaming works by sending content across the internet in real-time without recording entire files and storing them. If we look at high quality video streaming, there are 5 steps involved between the creation by the creator and the consumption of the high-quality content by the end user.
- Step 1: Video capture
First, the content creator captures the raw data or visual information using a camera. The data is represented in binary 1s and 0s in the device.
- Step 2: Segmentation
This is where the video file is broken down into smaller parts of a few seconds in length. As it is, video files are much larger in size and even downloading entire files takes a long time. Breaking them down into segments helps in streaming the entire video bit by bit.
- Step 3: Compression and encoding
Each of the segments are compressed and encoded. Compressing removes redundant visual information such as a background that does not change in the video. This makes it easy to render just the moving frames in the video before streaming. Encoding is a process that is necessary to convert the data into a format that is compatible with the variety of devices that the end user consumes the content on. For example, H.264, HEVC, VP9 and AV1 are some of the popular formats that videos are encoding into.
- Step 4: Content Distribution and CDN Caching
Next, the segmented, compressed and encoded video is distributed to end users. When the end user accesses a website or plays a video, their device (client) sends a request to the origin server to retrieve these files. Now if the users are located in close proximity to the server, or within a nearby region, this should not be a problem and the video files are streamed without much of an issue.
In fact, if your viewership is small and they are not widely distributed, the single server can stream to all your users. There is no need to introduce more elements into your streaming workflow.
But when the users are dispersed across a larger geographical area, in some cases across different countries, the round-trip-time for the server to deliver the content can be longer, resulting in delays or latency. This results in a below par user experience and one that is inconsistent across all of the video’s consumers.
Using a CDN solves this problem by caching the content in its distributed network of streaming servers. The CDN server closest to a particular end user will take care of delivering the content to that user.
- Step 5: Decoding and playback
Once the video data reaches the users, their devices will decode and decompress the video segment by segment into the binary raw data. And with a video player, the user is able to see the visual information and play the video.
Why Use a CDN for Live Streaming?
CDNs help improve the quality of the live streaming by distributing the content to the streaming servers which are closer to the end user. Specifically, CDN providers make live video streaming better in the following ways.
They ensure sufficient bandwidth for high traffic periods
CDNs help avoid the origin servers from getting overwhelmed if requests exceed their bandwidth limit. If a live stream suddenly sees a rapid spike in viewership, and they all request content from a single origin server, it can create a “choke point” and result in server downtime. With CDNs, the server can be protected from these scenarios and the responsibility of delivering content can be dispersed across the network of streaming servers.
They reduce latency and round-trip time
By caching content in the CDN servers closer to end users, CDNs reduce the need for live stream requests to go all the way to the origin server and the content to travel all the way back. This cuts down the round-trip time or RTT and importantly, minimizes latency and buffering to keep the stream real-time.
They help in live streaming to a global audience
Since the distribution is done through edge servers located across the world in a content distribution network, CDNs provide scalability in live streaming globally. And not just that, irrespective of where they are located, the viewing experience is the same and the latency and buffering is minimized through CDN servers closest to the end user.
They reduce the workload on origin servers
CDNs help offload much of the workload from the origin servers to the network. Since it takes a lot of computing power for a single server to respond to requests, and even more so for video live streaming, CDNs essentially protect the origin servers from overload and keep it operational. The same approach helps protect the servers from distributed denial of service or DDoS攻撃.
Businesses which rely on delivering high quality video streaming services to a globally distributed user base will benefit massively from live streaming CDNs. Look to partner with CDN providers who provide video streaming functionality, both live and on-demand and advanced transcoding processes to enable adaptive bitrates. Some providers also allow you to build your own tools and features using an API.