aboutsummaryrefslogtreecommitdiff

6.8301 Project

Installation

pip install -r requirements.txt

If you get an error about importing creedsolo, try running:

pip install --upgrade reedsolo --no-binary "reedsolo" --no-cache --config-setting="--build-option=--cythonize" --use-pep517 --isolated --pre --verbose --force-reinstall

If you're using your phone as a webcam, install scrcpy with pacman -S v4l2loopback-dkms scrcpy linux-headers on Arch Linux or the equivalent command for your distro. Also, remember to install the correct headers for your kernel. Then, run sudo modprobe v4l2loopback.

Usage

Encode: python encoder.py -i in

Play video (SEIZURE WARNING): mpv --scale=nearest --fullscreen --loop --no-keepaspect vid.mkv

Copy the flags printed by the encoder and pass them to the decoder: python decoder.py FLAGS

Formatting: black -l 120 *.py

Use phone as webcam for higher quality video: scrcpy --no-audio --v4l2-sink=/dev/video4 --video-source=camera --no-video-playback --camera-size 1920x1080 --camera-fps 60

Results

Height Width ECC level Bandwidth (bps)
150 240 0.2 2088632
160 256 0.2 2242199