This Python tool allows you to convert any file into a lossless ffv1 video, and later recover the original file exactly. The file is first compressed, then embedded frame by frame into video data. You can also convert the video back to the original file.
Find a file
2026-05-05 10:54:21 +02:00
.gitignore Standardize Python project setup 2026-05-05 10:54:21 +02:00
All-to-video.py Initial Init 2025-04-09 14:29:25 +02:00
LICENSE Initial Commit 2025-04-09 14:40:11 +02:00
README.de.md Standardize Python project setup 2026-05-05 10:54:21 +02:00
README.md Standardize Python project setup 2026-05-05 10:54:21 +02:00
requirements.txt Standardize Python project setup 2026-05-05 10:54:21 +02:00

File-to-Video Converter (and Back)

This Python tool converts any file into a lossless .avi video and can restore the original file from that video later.

The file is compressed with zlib, the original filename is stored with the data and the bytes are embedded frame by frame into FFV1 video frames.

Features

  • Compress and embed any file into a video
  • Extract and restore the original file from the video
  • Choose between 1080p, 1440p and 4K
  • Supports arbitrary file types
  • Uses Tkinter file dialogs for selecting input and output paths

Requirements

  • Python 3.6+
  • Python packages (see requirements.txt):
    • opencv-python
    • numpy

Install the dependencies with:

pip install -r requirements.txt

Usage

Run the script:

python All-to-video.py

Start file: All-to-video.py.

Options

After launch, you can choose:

  1. Convert a file to video

    • Select resolution
    • Choose the file
    • Save the resulting .avi video
  2. Convert video back to file

    • Select the .avi file
    • Choose the output directory for the recovered file

Notes

  • The tool uses zlib compression and stores the original filename inside the video data.
  • The FFV1 codec is used for lossless video storage.
  • Higher resolutions allow larger files to be stored (more bytes per frame).
  • The generated .avi video must stay lossless. Re-encoding it with a lossy codec will destroy the embedded file data.
  • Processing large files can be memory-intensive because frames are built in RAM.