The solution is to write a Cython library that interfaces directly to the gifski library. Cython is specifically needed because we need to run a second nogil thread for gifski's IO while we feed it frames in the main thread.
This could also let us skip the FFmpeg reverse filter/file rename step