Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@

## What is adaptive video streaming?

Ever wonder how Youtube/Netflix/Tiktok changes the resolution of the video, you are watching depending on your network speed?
Ever wonder how Youtube/Netflix/Tiktok changes the resolution of the video you are watching depending on your network speed?

You want to implement the similar feature in your own product, without any hassle?
Do you want to implement a similar feature in your product, without any hassle?

> **ZeStream is the backend service which you can self-deploy, and use its API to process the video and store it on a storage bucket like AWS S3/Google Cloud/Azure....**
> **ZeStream is the backend service which you can self-deploy, and use its API to process the video and store it on a storage bucket like AWS S3/Google Cloud/Azure...**

## Architecture

<img src="./docs/static/ZeStream.svg" width="500" />

## Implementation

1. User calls API to prcoess the video.
2. The API controller queues the event in a message queue (Kafka) and calls the given webhook.
3. A ZeStream worker polls the event from queue which contains file url
4. Worker fetches the file to local disk
5. Another worker starts a FFmpeg thread to process the video
6. Output is stored in local disk
1. The user calls API to process the video.
2. The API controller queues the event in a message queue (Kafka) and calls the provided webhook.
3. A ZeStream worker polls the event from the queue containing the file URL
4. The worker fetches the file to the local disk
5. Another worker starts an FFmpeg thread to process the video
6. Output is stored in the local disk
7. After FFmpeg finishes processing, another worker pushes the files to cloud storage
8. CDN is connected to storage for fetching the files.

Expand Down