You might need to fiddle with the params and the dithering methods to achieve best result. Then, use this color template to generate the actual gif file: ffmpeg -i -i palette.png -filter_complex "fps=10 scale=500:-1:flags=lanczos paletteuse=dither=sierra2_4a" -t 10 On the other side, you can achieve better results with ffmpeg only.įirst, I'd generate a palette of the input video: ffmpeg -i -filter_complex "fps=10 scale=500:-1:flags=lanczos,palettegen=stats_mode=full" -t 10 palette.png (Also, there's no such things like "huge" pixels, they are the atomic elements of raster images.)
For best results, I'd recommend floyd_steinberg or sierra2_4a, and maybe bayer with scale set to 3. I suppose you have no imageMagick installed on your environment, because "convert" is one of IM's tools.Īs for the video artifacts, it is caused by the default dithering method in FFmpeg. Shell_exec("/usr/bin/ffmpeg -i video.mkv -r 20 -f image2pipe -vcodec ppm - | convert -delay 5 - output.gif")