Git Product home page Git Product logo

zestream-server's Introduction

ZeStream - An adaptive video streaming server

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?

You want to implement the similar feature in your own 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....

Architecture

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
  7. After FFmpeg finishes processing, another worker pushes the files to cloud storage
  8. CDN is connected to storage for fetching the files.

Dev Setup

  1. Install Golang v1.19 from Go.dev
  2. Fork this repo, and clone the forked repo
  3. cd zestream-server
  4. go get .
  5. go run main.go

How to contribute?

Check out contribution guidelines

zestream-server's People

Contributors

abhi-shek-raj avatar abskrj avatar akshat2602 avatar chauhan17nitin avatar deepsource-autofix[bot] avatar deepsourcebot avatar shofiya2003 avatar uzaxirr avatar vivek378521 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.