Estou tentando fazer um fluxo de áudio passar por um slide no plano de fundo de uma apresentação de slides que fiz com o ffmpeg. Atualmente tenho o seguinte:
ffmpeg -loop 1 -t 15 -i img_1.jpg \
-loop 1 -t 15 -i img_2.jpg \
-loop 1 -t 15 -i img_3.jpg \
-stream_loop -1 -t 45 -i audio.mp3 \
-filter_complex \
"[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=out:st=4:d=1[v0]; \
[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[v0][v1][v2]concat=n=3:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -map 3:a output.mp4
Agora, a solução é criada a partir de Crie vídeos com 5 imagens com efeito fadeIn / out no ffmpeg e link , bem como ler os documentos ffmpeg.
A minha principal questão é que este método parece propenso a sobrecarga de memória alta desde que eu estou forçando o fluxo de áudio para loop indefinidamente e embora eu só estou recebendo os primeiros 45 segundos desse loop, uma suposição que eu teria é que ainda pode usar recursos looping além dos 45 segundos em um thread separado.
Resumindo, existe uma maneira melhor de ter o mesmo comportamento?