Attualmente sto usando il comando di questa domanda per dissolvere due video:
dissolvenza incrociata tra 2 video usando ffmpeg
Il mio comando:
ffmpeg -i firstVideo.mp4 -i secondVideo.mp4 -f lavfi -i color=black - filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v]scale=640x360,trim=duration=9[over];\
[over][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
-vcodec libx264 -map [outv] output.mp4
Questa animazione con dissolvenza incrociata funziona bene, tranne per il fatto che riduce il video a 480x360 anziché i 640x360 desiderati. Le meta informazioni mostreranno erroneamente che le dimensioni sono 640x360, ma sono certo che non lo sono.
Sono anche certo che entrambi i video in ingresso siano esattamente 640x360.
Immagino che il restringimento sia dovuto al formato pixel yuva420p
, ma non sono sicuro di quali altre opzioni ho. Ho provato a cambiare il formato dei pixel ma finora nulla ha funzionato.
Il comando indicato sopra viene eseguito senza errori.