Combinando um zoom com um fade com ffmpeg
O exemplo que você deu com ffmpeg
realmente funcionou com muito pouca modificação (manter -loop
causou um segfault: " Error in 'ffmpeg': double free or corruption (!prev): 0x0000000008dffa00
").
Então nós temos:
ffmpeg \ -t 5 -i 1.jpg \ -t 5 -i 2.jpg \ -t 5 -i 3.jpg \ -t 5 -i 4.jpg \ -filter_complex \ "[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1[v0]; \ [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \ [2:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \ [3:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \ [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 ./out_fade.mp4
Exemplo de saída:
Qualidadedabatata-precisodescobrirmelhoraotimizaçãogif
!Artefatosedistorçãosãooresultadodetentarobterotamanhodoarquivo<2MBenãoestãopresentesnasaídadevídeooriginal-deveserosuficienteparalhedarumaidéiadeseeleseajustaaoseucasodeuso.Asimagenssãominhas.
(adicional)Usandotransiçõesvariadasouarbitrárias
adicionadocombasenoscomentários
Mesmocomesteexemplomínimo,ofiltergraph
ficabastantecomplexorapidamente,eétediosomudarascoisas.Umabibliotecadiferentepodefazermelhor.
MLT/MELT
Porexemplo,MELT
para o MLT Framework pode ser útil:
Melt was developed as a test tool for the MLT framework. It can be thought of as a powerful, if somewhat obscure, multitrack command line oriented video editor.
e é frequentemente sugerido.
MoviePy
No entanto, o MoviePy (página do GitHub) pode ser mais adequado às suas necessidades, pois é um pouco mais conciso e sugerir) mais fácil de usar, na medida em que um editor de vídeo de linha de comando possa ser de fácil utilização.
Você provavelmente está mais interessado nas seções sobre composição e transitions/effects
Eu sugiro os dois acima baseados em minha própria experiência de tentar crowbar em transições com ffmpeg
; é factível e capaz de produzir alguns efeitos muito decentes, mas a dor não vale a pena. O script acima deve responder à sua pergunta sobre um zoom contínuo com uma entrada / saída gradual.