Streaming with Livepeer

Streaming with Livepeer

·

6 min read

1.png

The pandemic made us sit at home, stuck to movies, series, and in most cases, following a creator who live-streams a game or a reaction to an amazing piece of content. This actually changed the distribution of how much internet is actually in video format and it makes up about 80% of the Internet. Let that settle in.

80% of the stuff on the Internet is video! 📺 If we imagine the internet as the World, and the total water mass as video content, then the earth won’t have its largest continent! 🌏

Before getting into streaming, let’s clarify what I mean by live streaming ⁉️ Live streaming is being on either side of a live broadcast, which means, something is seen as it happens with minimum delay over the internet ⚡

The best example is, any major sports tournament viewed on the app, creators live-streaming a game and an audience experiencing in real-time (with a minimum delay of course)

Different centralized streaming infrastructure.

2.png

One of the biggest contributors to this is live-streaming services like Twitch, Youtube, and many more applications that enable people to have that real-time experience while they watch something. Statistically, the retention of a live viewer is 20% more than a pre-recorded video or a movie.

There are an array of services that enable different people with different needs to live stream stuff. Depending on your need, you can either

  • Integrate the service into your application
  • Use the service as a creator
  • Use the service as a telecasting service

Depending on your need, you get different services that provide a seamless experience. But you might be thinking,

What is your point here? 💢

The thing is, it is an amazing service but it is problematic in its working, and is often expensive as you scale and try it make yourself.

How does it work? 🤔

3.png

Live streaming is an amazing feat of engineering that requires a set of different innovations that work together to provide a user with a live experience with minimum delay. It can be divided into 4 basic steps as

  1. Video capture 📹
  2. Video encoding and segmentation 🏪
  3. CDN (Content Distribution Network) and caching 🏗️
  4. Decoding and Playback ▶️

Here are some words that are difficult to understand, but stay with me as I’ll try to explain this in non-tech terms as much as possible. With that, let’s understand each of the steps,

  • Video capture 📹

As the name suggests, the video is captured from a source. Be it a camera, a game, or a video you are reacting on. This is pretty basic and the video captured is then forwarded to video encoding.

  • Video encoding and segmentation 🏪

Let’s first understand the meaning of the words ‘Encoding’ and ‘Segmentation’ as they seem like complex things. Encoding means converting a type of information into another type of information so that it is easier to read. If you want to communicate via text or a letter, you write it down, in a way changing the type of information so that it is easier for the other person to understand it.

Moving onto ‘Segmentation’, this means Dividing a large chunk of information into smaller chunks so that you can move it faster and more efficiently. Imagine Segmentation as a process where you dismantle a chair so that you can fit it in a box and reassemble it once you reach your destination. The above two things are performed on the raw audio video file from the first step.

  • CDN (Content Distribution Network) and caching 🏗️

The first two steps are easy. The main innovation is here. The CDN is responsible for optimizing the delivery of the small data packets to every viewer who wants to watch the stream.

What is a data packet ❓

In our case, a data packet is a small encoded video, which was segmented for better transportation. Coming back to our CDN, it is a powerful server, that not only optimizes what data packets go to which device, so that the device gets real-time video, but along with maintaining the integrity of the initial data packets.

CDN is like a super merch store that gives out everyone the same merch, but in different sizes for different people. So, if you are a huge guy with lots of muscle (in our case, a great bandwidth internet) you’ll get your XL size at the same time as our intern, who is a cat with no muscles (in this case, a user with less internet bandwidth), CDN paired with caching improves the efficiency of the CDN as a whole.

Wait, what is caching? 😠

Caching is a simple process of storing some data so that when the same request is made, it is loaded faster.

WHAT? 😕

Imagine you own a cafe and you have a customer who comes every day and drinks the same coffee. After a point, you ready the basic ingredients for the coffee, sometimes even heat the milk before the customer comes, to serve him faster. This is caching. If you want to know more about CDNs read this blog, it is a really great resource!

  • Decoding and Playback ▶️

The data packets are received at the user’s device. Now it’s time read them and start the original video. Here decoding comes into play. Remember we wrote a letter in the second step, now it’s time to open it and read what it says. Once you are done decoding, you just play the video from step one and viola! You now know how live streaming works.

You might be thinking, THIS IS AMAZING!

What are the issues you were talking about?

Well, let me list it down for you,

  1. CDNs are extremely expensive as they are sometimes working to optimize for millions of concurrent viewers.
  2. The distance between the nearest server connected to CDN and your device may be large, thus delaying your live stream by a significant margin.
  3. If the live streamer and the audience are in close vicinity, and the server is far away, there would be a delay in the stream as data packets would be traveling a long distance.
  4. These are centralized options, so there would be a concern for privacy.

Let’s move to the juicy part of the blog, so what is the web3 alternative for this?

It’s Livepeer 😉

Livepeer- What’s that? 📶

4.png

Livepeer is a web3 alternative for streaming services. It is a decentralized protocol that enables people to include Livestream in their applications. Here the catch is, the processing of encoding and decoding is outsourced to miners. Miners can charge different competitive rates for the use of their hardware. You have a choice to choose from. In their own words,

“Livepeer is a protocol for developers who want to add a live or on-demand video to their project. It aims to increase the reliability of video streaming while reducing costs associated with it by up to 50x”

Livepeer is a protocol that enables all people to be a part of the protocol as it benefits engineers, broadcasters, users, and miners altogether. They also have Tokenomics that help delegators to be a part of their Protocol.

How does Huddle01 work with Livepeer? 🤝

5.png

As Huddle01 is bringing innovation in communication via the internet, it is obvious that we are also upgrading the existing infrastructure with new features like live streaming. We support streaming with Livepeer, Youtube, and Twitch. Thus, it is easier for creators and users to instantly start a live stream for creators across platforms.

Bonus! We got featured in the Livepeer Studios blog, you can find it here.

That’s it from our side! If you have any questions/suggestions or team-ups in mind, reach out on Twitter or land on our discord! See you at the next one 👋