Você pode "transmitir" imagens para o ffmpeg para construir um vídeo, em vez de salvá-las no disco?

Meu trabalho envolve recentemente a programação de vídeos. Em python, o fluxo de trabalho típico se parece com algo assim:

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"])

Esse fluxo de trabalho cria uma imagem para cada quadro no vídeo e o salva no disco. Depois que todas as imagens tiverem sido salvas, o ffmpeg será chamado para construir um vídeo de todas as imagens.

Salvar as imagens em disco (não a criação das imagens na memória) consome a maioria dos ciclos aqui e não parece ser necessário. Existe alguma maneira de executar a mesma função, mas sem salvar as imagens no disco? Assim, o ffmpeg seria chamado e as imagens seriam construídas e alimentadas ao ffmpeg imediatamente após serem construídas.

questionAnswers(1)

yourAnswerToTheQuestion