Skip to content

Lawful831/neverpause

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

NeverPause

Adaptive Video Streaming Foundation

NeverPause is a video delivery pipeline and player that handles bandwidth drops by switching to lower-quality fallback tracks. It uses AV1 encoded tracks and WebCodecs to swap video quality quickly without pausing to buffer.

Repository Structure

  • pipeline/ - Python scripts that analyze video files and encode them into fallback tracks using ffmpeg. It generates an instruction.json config.
  • player.html - A frontend playback engine. It reads the instruction.json file, streams the main video using a standard <video> tag, and pre-caches the fallback tracks using IndexedDB. If the network drops, it switches to the fallback track using an off-screen Canvas and the VideoDecoder API.

Requirements

Pipeline requirements:

  • Python 3.12+
  • ffmpeg with libaom-av1 support
  • opencv-python-headless

How it Works

1. Processing

python pipeline/video_fallback_pipeline.py video.mkv

This generates L1, L2, and L3 level WebM tracks in an AV1 container right alongside the source video.

python pipeline/generate_instruction_file.py video.mkv

This performs a deep-motion pass over your video, and outputs video_instruction.json with tracking data, motion thresholds, and fallback frame configurations.

2. Playback

Ensure the source video, the fallback generated WebM files, and the video_instruction.json are all hosted on your local server.

Launch the standalone player by setting the instruction path in the URL query string:

http://localhost:3000/player.html?instruction=path/to/video_instruction.json

About

Adaptive video streaming engine using AV1 and WebCodecs to eliminate buffering via intelligent fallback track pre-caching.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors