Changes
*Instead of ffmpeg saving frames to disk as individual image files, pipe the frames to stdout as RGB24 (width x height x 3 bytes), and store the bytes in a list. Then once ffmpeg exits, process the list into PIL objects. Depending on how IO bottlenecked the system is, this can yield around 30% faster frame extraction
Changes *Instead of ffmpeg saving frames to disk as individual image files, pipe the frames to stdout as RGB24 (width x height x 3 bytes), and store the bytes in a list. Then once ffmpeg exits, process the list into PIL objects. Depending on how IO bottlenecked the system is, this can yield around 30% faster frame extraction