Getting Started
Introduction
Eternal-Stream (b2v) encodes arbitrary binary files into video files (.mkv, .mp4) and decodes them back. The video frames contain the binary data rendered as black-and-white pixel blocks, so the result looks like visual noise to a human viewer.
Compliance
Do not use this tool on public video hosting platforms without verifying their Terms of Service. Storing arbitrary binary data often violates fair-use and content policies. This tool is intended for self-hosted storage or private servers where you control the data.
Installation
Via Cargo
If you have Rust installed:
cargo install --path .From source
- Clone the repository
- Run
cargo build --release - The binary is in
target/release/b2v
Basic Usage
Encoding
To encode a file into a video:
b2v encode -i data.zip -o backup.mkvThis creates backup.mkv. Data is read in chunks, so memory usage stays low regardless of file size.
Decoding
To restore a file from a video:
b2v decode -i backup.mkv -o restored_data.zipThe decoder reads the header from the first video frame to determine the encoding parameters automatically.
Notes
- The SHA-256 hash printed after encoding is not stored in the video header (the header contains a
PENDINGplaceholder). Keep it separately if you want to verify integrity after decoding. - Use
ffv1(lossless) for reliable round-trips. Lossy codecs likelibx264can corrupt data even with error correction if the compression is aggressive.