¿Puede "transmitir" imágenes a ffmpeg para construir un video, en lugar de guardarlas en el disco?

Mi trabajo recientemente involucra la realización programática de videos. En Python, el flujo de trabajo típico es algo así:

import subprocess, Image, ImageDraw

for i in range(frames_per_second * video_duration_seconds):
    img = createFrame(i)
    img.save("%07d.png" % i)

subprocess.call(["ffmpeg","-y","-r",str(frames_per_second),"-i", "%07d.png","-vcodec","mpeg4", "-qscale","5", "-r", str(frames_per_second), "video.avi"])

Este flujo de trabajo crea una imagen para cada fotograma en el video y la guarda en el disco. Una vez que se han guardado todas las imágenes, se llama a ffmpeg para construir un video a partir de todas las imágenes.

Guardar las imágenes en el disco (no la creación de las imágenes en la memoria) consume la mayoría de los ciclos aquí y no parece ser necesario. ¿Hay alguna forma de realizar la misma función, pero sin guardar las imágenes en el disco? Entonces, se llamaría ffmpeg y las imágenes se construirían y enviarían a ffmpeg inmediatamente después de construirse.