-pattern_type glob
esempi concreti con l'audio
Questa opzione è stata menzionata su: https://superuser.com/a/782520/128124 ma qui ci sono alcuni esempi concreti del suo utilizzo, incluso l'aggiunta di audio al video di output.
Presentazione video con un'immagine al secondo
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Aggiungi un po 'di musica, interrompi quando l'audio termina con le immagini:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
Ecco due demo su YouTube:
Diventa un hippie e usa il formato video illimitato di brevetti Theora :
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
Le immagini dovrebbero ovviamente essere ordinate in ordine alfabetico, in genere come:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
e così via.
Vedi anche: http://unix.stackexchange.com/questions/68770/converting-png-frames-to-video-at-1-fps/339399#339399
Video a velocità normale con un'immagine per fotogramma a 30 FPS
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
Ecco come appare:
GIF generata con: https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
Aggiungi un po 'di audio ad esso:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
Risultato: https://www.youtube.com/watch?v=HG7c7lldhM4
Converti un file musicale in un video con un'immagine fissa per il caricamento su YouTube
Risposta a: Come convertire MP3 in formato video consentito da Youtube?
Ottieni alcune immagini di input di test sintetici
Queste sono le immagini di prova che ho usato in questa risposta:
wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
Immagini generate con: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
È bello osservare quanto il video comprime la sequenza di immagini in modo migliore rispetto a ZIP in quanto è in grado di comprimere attraverso i frame con algoritmi specializzati:
opengl-rotating-triangle.mp4
: 340K
opengl-rotating-triangle.zip
: 7.3M
Informazioni sulle opzioni della CLI
Si noti tuttavia che, nonostante il nome, -glob
questo non è così generale come gli schemi della shell Glob, ad esempio: -i '*'
fail: https://trac.ffmpeg.org/ticket/3620 (apparentemente perché il tipo di file viene dedotto dall'estensione).
-r 30
realizza il -framerate 1
video 30 FPS per superare bug nei giocatori come VLC per framerate bassi: https://stackoverflow.com/questions/19267443/playback-issues-in-vlc-with-low-fps-video-from-images-using- ffmpeg / 41797724 # 41797724 Quindi ripete ogni fotogramma 30 volte per mantenere l'effetto desiderato di 1 immagine al secondo.
Prossimi passi
Dovrai anche:
TODO: impara a tagliare e concatenare più file audio nel video dalla riga di comando:
Testato su
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04.
Bibliografia