Skip to content

saurabhv749/multitube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multitube: Adaptive Video Streaming Service Demo

Project Logo

Description

This project demonstrates the internal workings of a video streaming platform similar to 'Netflix'. It takes input from a folder containing video posters, subtitles, and more. Video input API is not yet implemented. It processes these inputs to generate HLS streams for live streaming, accompanied by a master.m3u8 file. The project also provides a user interface for experiencing live streaming with multiple subtitles, audio tracks, and resolutions.

Adaptive here means : When playback is set to auto, the browser will dynamically select chunks to download based on factors such as display resolution, device hardware capabilities, and internet speed, ensuring smooth video playback.

Features

  • Video processing and HLS stream generation.
  • Adaptive streaming using HLS.
  • User interface for selecting subtitles, audio tracks, and resolutions.
  • Seamless navigation and smooth video playback.

Behind the scene

Processing explained

video streaming vs Video file

Streaming explained

Demo

Demo available in assets/multitube_demo.mp4

Prerequisites

Working

  1. put poster and video file (horizontal) in server/uploaded_videos/[video_title] folder. you can also put some external subtitles if you want to.
  2. run server/process/index.js. this will create stream,rendition and variants for each input file. this will take time.

Not implemented

  • API and UI for uploading video, subtitles, poster
  • support for vertical video
  • robust database

Resources

What is live streaming?

stream,rendition and variants in hls live streaming