Estou tentando tirar três imagens PNG com fundo transparente e fazer um vídeo crossfade com elas para que eu possa colocar o vídeo em um vídeo em segundo plano. Eu entendo que posso fazer isso em 1 comando, mas gostaria de mantê-lo separado, como o vídeo de fundo pode ser intercambiável. O que eu tenho até agora é:
ffmpeg -loop 1 -t 1 -i 1.png -loop 1 -t 1 -i 2.png -loop 1 -t 1 -i 3.png -
filter_complex "[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-
(if(gte(T,0.5),1,T/0.5)))'[b1v]; [2:v][1:v]blend=all_expr='A*
(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v]; [0:v][b1v][1:v]
[b2v][2:v]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
Isto parece funcionar, mas o fundo agora é preto, não transparente, eu tentei fazer a saída diferentes tipos de arquivos (avi, mov etc.), mas isso não tem efeito. O próximo comando que estou executando é:
ffmpeg -i out.mp4 -i video.mp4 -filter_complex "[0:v]scale=1080:-2[fg1];
[1:v]scale=1920:-1,setpts=PTS-STARTPTS[bg];[bg]
[fg1]overlay=400:400:shortest=1,format=yuv420p[v]" -map "[v]" -movflags
+faststart final.mp4
Isso também parece funcionar, mas novamente o vídeo que estou sobrepondo não tem a transparência, então parece ruim. Existe uma maneira que eu possa fazer o primeiro vídeo honrar a transparência dos pngs originais? Se for necessário um único comando, fico feliz em fazer isso, mas neste momento, atingi uma parede. Qualquer ajuda é apreciada.