Crea video con 5 immagini con effetto fadeIn / out in ffmpeg

Con 5 immagini devo creare un video di 60 secondi in ffmpeg, each image deve essere visualizzata per 15 secondi. dopo 15 secondi, la prima image deve svanire e la seconda image deve svanire, dopo che la seconda image deve svanire, la terza image deve svanire in .. ecc. Mi prego di guidarmi come posso get questo utilizzando i comandi ffmpeg.

Immergere nel nero

esempio sbiadito

Questo non è così banale come si potrebbe probabilmente aspettarsi, ma è assolutamente ansible. Esempio in cui each image visualizzata per 5 secondi e ognuno ha un dissolvenza che dura 1 secondo.

ffmpeg \ -loop 1 -t 5 -i input0.png \ -loop 1 -t 5 -i input1.png \ -loop 1 -t 5 -i input2.png \ -loop 1 -t 5 -i input3.png \ -loop 1 -t 5 -i input4.png \ -filter_complex \ "[0:v]fade=t=out:st=4:d=1[v0]; \ [1:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \ [2:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \ [3:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \ [4:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \ [v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4 

Opzioni e filtri utilizzati:

  • -t per impostare la durata in secondi di ciascun ingresso.

  • fade a svanire dentro e fuori. d è la durata del dissolvenza. quando è inizio.

  • concat per concatenare (o "unirsi") each image.

  • format per l'output di un schema di sottomaschera di cromo compatibile con i lettori non basati su FFmpeg se codifica con libx264 (impostazione predefinita per l'output MP4 se supportta dalla build).

crossfade

esempio incrociato

L'utilizzo della melt dal MLT Multimedia Framework può essere più facile per questa attività:

 melt -verbose \ -profile atsc_720p_25 \ 001.png out=50 \ 002.png out=75 -mix 25 -mixer luma \ 003.png out=75 -mix 25 -mixer luma \ 004.png out=75 -mix 25 -mixer luma \ 005.png out=75 -mix 25 -mixer luma \ -consumer avformat:output.mp4 vcodec=libx264 an=1 
  • Utilizza un profilo adatto ai tuoi file di input. Puoi elencare i profili con i profili melt -query profiles e ricevere informazioni su un particolare profilo, ad esempio il question- melt -query "profile=atsc_720p_25" .

  • out imposta la durata di each image. Il valore è in frame. Questo esempio utilizza un profilo che imposta una frequenza di frame di 25, in modo da 25 fotogrammi pari a 1 secondo.

  • mix imposta la durata del dissolvenza. Il valore è in frame.

  • mixer imposta il tipo di miscelazione.

  • Vedere la documentazione MLT e la documentazione di fusione per ulteriori informazioni.

Ho scritto un comune script bash che port un path di una cartella di immagini e produce un video crossfade con ffmpeg:

https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e

Lo script esamina essenzialmente le immagini in una cartella e printing un command che è simile alla risposta di @LordNeckbeard sopra e esegue il command. Questo script aiuta quando hai molte immagini in una cartella e non vuoi digitare manualmente un command depresso lungo.