#!/bin/sh video1="mezmerize.mp4" palette1="palette1.png" output1="out/out_%d.bmp" video2="mezmerize_fix.mp4" palette2="palette2.png" output2="out2/out_%d.bmp" filters="scale=256:-1:flags=lanczos,fps=30" dither="none" # "bayer", "heckbert", "floyd_steinberg", "sierra2", "sierra2_4a", "sierra3", "burkes", "atkinson", "none" # video ffmpeg -i $video1 -vf "$filters,palettegen=max_colors=256:reserve_transparent=0:stats_mode=diff" -y $palette1 ffmpeg -i $video1 -i $palette1 -filter_complex "$filters[x];[x][1:v]paletteuse=dither=$dither" -y $output1 ffmpeg -i $video2 -vf "$filters,palettegen=max_colors=256:reserve_transparent=0:stats_mode=diff" -y $palette2 ffmpeg -i $video2 -i $palette2 -filter_complex "$filters[x];[x][1:v]paletteuse=dither=$dither" -y $output2 # audio ffmpeg -i $video1 -f s8 -vn -ac 1 -ar 16000 -y music1.raw for file in out/*.bmp; do echo $file magick "$file" -background black -gravity west -extent 256x "$file" done for file in out2/*.bmp; do echo $file magick "$file" -background black -gravity west -extent 256x "$file" done