Skip to content

Repository files navigation

Video Compress

Compress video with two complementary ideas:

  1. Saving changes — keep keyframes plus a sparse mask of pixels that changed between frames.
  2. Autoencoder — learn a compact representation of individual frames (experimental).

Layout

src/video_compress/     # importable library
notebooks/              # exploratory experiments
data/raw/videos/        # input videos (Git LFS)
data/samples/images/    # sample still images
artifacts/              # tensors and reconstructed videos
scripts/                # CLI entrypoints (future)
tests/                  # unit / smoke tests

Setup

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Or with the requirements file:

pip install -r requirements.txt
pip install -e .

Quick usage

from video_compress import CustomAutoencoder
from video_compress.compression import get_mask, build_video_diff, retrieve_all

model = CustomAutoencoder(hidden_dims=[16, 32, 64])

Notebooks live under notebooks/ and resolve paths relative to the repo root via a setup cell.

Tests

pytest

Git LFS note

Large .mp4 / .pth files are tracked with Git LFS. If clone/checkout fails with "Git LFS is disabled for this repository", fetch code with:

GIT_LFS_SKIP_SMUDGE=1 git clone <url>

You will get LFS pointer files instead of the real media until LFS is re-enabled or assets are provided locally.

About

Research techniques and developing video compression models using Unmasked Autoencoder, Masked Autoencoder, and Saving change technique.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages