Adaptei o seguinte crossfade de Gyan para criar um vídeo a partir de uma imagem e um arquivo de áudio e, em seguida, faça o crossfade com um outro. Isso funciona bem, mas eu também quero ter o primeiro fluxo de vídeo fade-in.
Usar o fade
filtro para fazer isso simplesmente torna todo o fluxo preto por motivos que não consigo compreender:
ffmpeg -i "image.jpg" -i "audio.flac" -i "outro.mp4" \
-movflags faststart \
-filter_complex \
"color=black:1384x1080:d=186.367[base]; \
[0:v]fade=in:st=0:d=2,scale=1384:1080,setpts=PTS-STARTPTS[v0]; \
[2:v]format=yuva420p,fade=in:st=0:d=2:alpha=1,setpts=PTS-STARTPTS+((168)/TB)[v1]; \
[base][v0]overlay[tmp]; \
[tmp][v1]overlay,format=yuv420p[fv]; \
[1:a][2:a]acrossfade=d=2[fa]" \
-map [fv] -map [fa] -map -0:v:1 -c:v libx264 -c:a libopus -shortest "track1.mp4"
Isso é possível?
Uma entrada de imagem é tratada como um fluxo de vídeo que consiste em um quadro. Para realizar um fade, você precisa de vários quadros, pelo menos tão longos quanto a duração do fade.
Para um fade-in de 2 segundos, altere
para