How to Build a Very Slow Movie Player for £120 in 2020

Ambient home cinema was the perfect lockdown project

My Very Slow Movie Player in an IKEA frame playing Alfred Hitchcock’s Psycho. Photos courtesy of the author
Bryan Boyer’s original VSMP (link)

Get started with Raspberry Pi

The Raspberry Pi and the e-paper Hat hot-glued to the back of an Ikea picture frame. The power comes in through the USB-C connector on the bottom left of the Pi.

Connecting the display

sudo raspi-config <-- Don’t forget to turn on SPIgit clone https://github.com/TomWhitwell/SlowMovie/cd ‘SlowMovie/e-paper/RaspberryPi&JetsonNano/python’sudo python setup.py install
Waveshare’s version of Hello World
IOError: [Errno 2] No such file or directory
My version of hello world shows random frames from a two-second snippet of Psycho

Hello world

cd ~/SlowMovie
sudo pip install ffmpeg-python
python helloworld.py
# Use ffmpeg to extract a single frame from the .mp4 file, resize it, letterbox it and save it locallydef generate_frame(in_filename, out_filename, time, width, height):    
(
ffmpeg
.input(in_filename, ss=time)
.filter('scale', width, height, force_original_aspect_ratio=1)
.filter('pad', width, height, -1, -1)
.output(out_filename, vframes=1)
.overwrite_output()
.run(capture_stdout=True, capture_stderr=True)
)
# Import, initialise and clear the displayfrom waveshare_epd import epd7in5_V2
epd = epd7in5_V2.EPD()
epd.init()
epd.Clear()
# Check how many frames are in the movieframeCount = int(ffmpeg.probe(inputVid)[‘streams’][0][‘nb_frames’])# Pick a random frameframe = random.randint(0,frameCount)# Convert that frame count to Timecode used by ffmpegmsTimecode = “%dms”%(frame*41.666666)# Open the saved frame in PILpil_im = Image.open(“grab.jpg”)# Convert the image to a 1 bit bitmap (Just zeros and ones)# using Floyd Steinberg ditheringpil_im = pil_im.convert(mode=’1',dither=Image.FLOYDSTEINBERG)# display the imageepd.display(epd.getbuffer(pil_im))

The very slow movie player

python slowmovie.py
python slowmovie.py -h
python slowmovie.py -f 2001.mp4 -d 150 -i 1
sudo nano /etc/profile
cd SlowMoviesudo python slowmovie.py

Finishing off

Algorithmic art inspired by Georg Nees

Next steps

Consultant at Fluxx, reformed journalist, hardware designer.