
Estou criando vídeos a partir de imagens que possuem diferentes tamanhos e orientações. Na verdade, preciso fazer animações de slides de vídeo com base na orientação da imagem (proporção). Então, digamos que eu tenha 4 imagens com os seguintes tamanhos:
1.jpg 1280x1600 (de cima para baixo)
2.jpg 1280x1600 (de baixo para cima)
3.jpg 1280x1600 (de cima para baixo)
4.jpg 1280x1280 (sem efeito)
Aqui está oFFmpegcomando que estou executando
ffmpeg -y -r 25 \
-loop 1 -t 5 -i 1.jpg \
-loop 1 -t 5 -i 2.jpg \
-loop 1 -t 5 -i 3.jpg \
-loop 1 -t 5 -i 4.jpg \
-i audio.mp3 \
-filter_complex " \
[0]crop=1280:1280:ow:((ih-oh)/5)*t,format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+0/TB[f0];
[1]crop=1280:1280:ow:(ih-oh)-((ih-oh)*t/5),format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+4/TB[f1];
[2]crop=1280:1280:ow:((ih-oh)/5)*t,format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+8/TB[f2];
[3]fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+12/TB[f3];
[0][f0]overlay[bg1];[bg1][f1]overlay[bg2];[bg2][f2]overlay[bg3];[bg3][f3]overlay,format=yuv420p[v]" -map "[v]" -map 4:a -b:v 4000k -movflags +faststart -t 20 -s 1280x1280 out.mp4
Por favor, dê uma olhada nos primeiros segundos do vídeo
Então, o crossfade, o corte e o efeito estão funcionando, mas como você pode ver, mantém uma seção desnecessária na parte inferior do vídeo. Todas as outras animações são mostradas na seção acima
Não tenho certeza, mas parece que está mantendo a altura da primeira imagem (1600)? Aguardo qualquer sugestão para corrigir esse problema
Responder1
Use oxfadefiltro:
ffmpeg \
-loop 1 -t 5 -i cyan.jpg \
-loop 1 -t 5 -i magenta.jpg \
-loop 1 -t 5 -i yellow.jpg \
-loop 1 -t 5 -i black.jpg \
-i audio.mp4
-filter_complex \
"[0]crop=1280:1280[v1]; \
[1]crop=1280:1280[v2]; \
[2]crop=1280:1280[v3]; \
[3]crop=1280:1280[v4]; \
[v1][v2]xfade=wipedown:duration=1:offset=4[x1]; \
[x1][v3]xfade=wipeup:duration=1:offset=8[x2]; \
[x2][v4]xfade=wipedown:duration=1:offset=12,format=yuv420p[v]" \
-map "[v]" -map 4:a -movflags +faststart -shortest output.mp4
Você pode ver uma galeria de todas as transições emWiki FFmpeg: xfade.