Super Simple Slowest Video Player - 7 Colors

by RyanH317 in Circuits > Gadgets

857 Views, 7 Favorites, 0 Comments

Super Simple Slowest Video Player - 7 Colors

PXL_20240813_205130088.jpg
PXL_20240813_205146340.jpg
Untitled video - Made with Clipchamp.gif

No Assembly. A simpler way to create a slowest video player - using a 7 color E-Paper display.


The Very Slow Movie Player displays a movie or show over several months or years. It makes use of a e-paper display and a Raspberry Pico (pre-assembled) to display the frames of the movie. The frame is open source and allows for updating the firmware or attaching other boards to the Pico to add other functionality.


Inspired by other Very Slow Movie Players:

The Slowest Video Player with 7-Colors! | Hackaday.io

Very Slow Movie Player : 6 Steps (with Pictures) - Instructables

Creating a Very Slow Movie Player | by Bryan Boyer | Medium

Supplies

Waveshare PhotoPainter

32GB Micro SD (Included with some frames, must be in FAT32 format)

3.7V 1800mA Lithium battery (Included with some frames)

CR1220 coin cell battery (Included with some frames)

USB C Cable

Slicing the Video

Screenshot 2024-08-18 121412.png

This first step is to slice the video into individual images. This was done using FFmpeg. You only need to use FFmpeg to slice the video. You could also use it to make the images compatible with the screen, but we will use software by Waveshare for this E-Paper display to crop and recolor the frames.

.\ffmpeg.exe -hwaccel auto -i .\Howls_Moving_Castle.mkv -vf "fps=4,crop=1920:1040" -q:v 2 .\test\%02d.jpg

The following is a breakdown of each commands you can change.

  1. -i .\some_video.mkv: set the input video to be sliced.
  2. fps=4: Saves every 4th frame. You may want to change this to increase or decrease the amount of frames, based on how often you want to update the frame.
  3. crop=1920:1040: The video I used had black bars on the top and bottom. So I used crop to remove them - this can be removed if your images does not have the bars.
  4. -q:v 2: Changes the quality of the outputted image. 2 is the highest and 32 is the lowest. I would keep it at 2 since we will lower the resolution of the images in a following step.
  5. .\video_images\%04d.jpg: Sets the folder to save the images into and auto names the outputted images to #.jpg

Process the Images

8706.jpg
8706_scale_output.jpg

The next step is to process all the images to be able to be displayed on the E-Paper display. Waveshare supplies an application for the frame that will resize, recolor and apply a dithering algorithm to the images so that they work perfectly with the frame.

-PhotoPainter - Waveshare Wiki

Windows:

  1. Download the 7 Colors Dithering Pictures Convert Tool and unzip the folder.
  2. From the Windows folder copy the two files and paste then in the images folder created in the previous step.
  3. Double click the converterTo7color_all.cmd.
  4. Wait for all images to be converted - this will take a hour or so depending on the number of images.
  5. Once done move the converted photos to a folder named pic.

Mac:

  1. Download the 7 Colors Dithering Pictures Convert Tool and unzip the folder.
  2. In a terminal cd to the downloaded folder and then the Mac folder.
  3. Change the executable permission for both of the files in the folder.
sudo chmod +x convert
sudo chmod +x converterTo7color_all.sh 
  1. Then run the following to convert all of the images - this will take a hour or so depending on the number of images.
./converterTo7color_all.sh
  1. Once done move the converted photos to a folder named pic.

Creating an Image List

For the frame to display the images it needs a file that contains a list of all the image names.

To create the file you can use the python code or the .exe file in this GitHub repo - Honsl/PhotoPaperPrep (github.com). I would just run the python code, since the .exe will most likely be flagged by anti-virus.

  1. Place the .exe or .py file in the folder that contains the pic folder created in an earlier step. Then run either the .py or .exe.
  2. Once it has run there will be a new file called fileList.txt. That contains a list of all of the photos in the pic folder.

Example file contents:

pic/100_image.bmp
pic/101_image.bmp
pic/102_image.bmp
pic/103_image.bmp

Format SD Card

For the frame to be able to read the images from the SD card, the card needs to be in FAT32 format

Copy to SD Card

Next copy the pic folder and the fileList.txt onto the SD card.

DO NOT PLACE THE SD CARD IN THE FRAME YET.

Preparing the Frame

PXL_20240808_214739128.jpg
PXL_20240808_215426621.jpg
PXL_20240808_220047863_2.jpg

The next step is is install the Lithium (Optional) and cell battery into the frame. The frame can be used without the Lithium battery and just be plugged into a wall via a USB C cable. The cell battery is required as it is used for the timing the image changes.

  1. Pull back the five black tabs (red circles) on the back of the frame and lift up the back. You will also want to move the hanging mount (black circle) - if you want to hang the frame in landscape. There is nothing else beside these tabs holding the screen to the frame - so don't pick up the frame without them pressed back down.
  2. Install the Lithium battery cable (Black Circle) and cell battery (Red circle). Place the back panel back on the frame fishing the battery back through the large rectangle. Make sure to press the black tabs back down.
  3.  Remove the red film (White rectangle) covering the sticky pad for the battery. Place the battery on the pad. Charge the battery with the USB C port until the light beside the port turns green.
  4. Change the toggle switch from OFF to ON. To allow the frame to auto progress through the images.


Update the Firmware

PhotoPainter_Firm01.jpg

The original firmware for the frame only supports 100 images and updated the image every 12 hours. This does not work since from a video we will have 10's of thousands of videos. To get around this the frame has a mode that allows us to supply a .txt with a list of all the files. I have created new firmware updates that change the mode and the timing for the photo to update. You can find these in the firmware folder Here. Select the .uf2 with the timing you want.

To upload the selected firmware

  1. Plug the frame into your computer via the USB C cable.
  2. Press RUN, then press BOOT, then release RUN, then release BOOT, a USB flash drive will pop up on the computer.
  3. Then drag the UF2 file into the drive.
  4. Once the file is transferred the frame will auto unmount from the computer.
  5. Unplug the frame from the computer. 

Insert the SD Card

  1. Insert the SD card into the frame.
  2. Hit the next button to have the frame load the first image.

Note: If the frame is not updating, plug the frame into a computer and click the RUN button. Wait for the red light to stop flashing and then click the next button.