Skip to Main Content
Talk Beginner First Talk

Chunk by Chunk: How We Built an HTTP Live Streaming Server

Approved
Session Description

Hi there :)

Dekho is a very simple, bare-bones and open source Video on Demand server which we built to understand how video streaming works at a fundamental level. The talk will consist of -

  1. Why did we choose to build Dekho?
  2. How did it start?
  3. What topics we learnt about while exploring video streaming?
  4. And how do we plan to take this project ahead?

What are we going to speak about?

We built Dekho by implementing the HTTP Live Streaming (HLS) Protocol.

  1. So we will give the birds eye view of HLS.
  2. The difference between streaming and downloading..
  3. Why did we choose to use HLS?
  4. Different common terminologies that one comes across when learning about video streaming like container formats (.mp4, .mkv), video codecs (H.264/AVC, H.265/HEVC), audio codecs like (aac, mp3, flac), output formats like (mpegts, flv)
  5. How to extract and study the metadata of video/audio files (a little bit of hands-on experimentation) with ffmpeg and ffprobe
  6. What are the roles of the different components of Dekho i.e. the server, the client, the database and the static file storage?
  7. And finally how all of these components come together to stream videos on your favourite OTT application :)
  8. The infra challenges we faced while building Dekho and how do we plan to take it forward.


Open Source Tools Used:

  • ffmpeg - our main tool which helped us create chunks for the HLS Streaming
  • appwrite - our static file storage service
  • HLS.js - the hls.js client which helped us play the chunks



Reference Links on Dekho

Disclaimer: Since we are using a free render instance for hosting, it might be sleeping and would take around 40-45 seconds to load. Please be a little patient :)
  1. Try out Dekho here: Dekho
  2. GitHub Repository: GitHub - Chirag-And-Dheeraj/video-streaming-server: A research/study project for understanding and learning the fundamentals of audio/video streaming.
  3. Peerlist Project of the Week on Launchpad: Dekho | Peerlist
Key Takeaways
  1. How HTTP Live Streaming works at a fundamental level?
  2. How to analyze and study the metadata present inside a video?
  3. Different terminologies which are usually referenced while working with video streaming.

References

Session Categories

FOSS

Speakers

Dheeraj Lalwani
Software Engineer: Backend | HeyMarvin

Hey there! I'm Dheeraj, a Backend Engineer working remotely with HeyMarvin and I'm based out of Mumbai.

At work, I'm all about Python, but I switch to Go when tinkering with my personal projects. Recently, I've been diving into the world of video streaming with my friend Chirag Lulla through our project Dekho. We're on a mission to peek behind the curtain and really understand how video streaming works under the hood.

I'm a backend enthusiast through and through - nothing gets me more excited than discussing system design, APIs, or database optimization over a cup of chai.

Catch me on Twitter/X as @DhiruCodes where I'm always up for a chat!

You can also connect with me on Peerlist as dheerajlalwani.

https://twitter.com/DhiruCodes
Dheeraj Lalwani
Chirag Lulla
Software Engineer | UBS

Hey! I'm Chirag.

I am Software Engineer currently based in Pune and working at UBS.

My day job has me working with SQL, Python, and Power BI, helping turn data into insights. Outside work hours, I enjoy exploring different tech topics and following my curiosity wherever it leads.

Recently, I've been deep-diving into video streaming technology with my friend Dheeraj, building our own streaming server from scratch. It's been an exciting journey understanding how the videos we watch every day actually make it to our screens!

Find me on X as @_chiraglulla_ and Peerlist as chiraglulla if you'd like to connect and chat tech!

https://twitter.com/_chiraglulla_
Chirag Lulla

Reviews

No reviews yet.