2014-07-25 16 views
37
ffmpeg -r 1/5 -start_number 2 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

Questa linea ha funzionato bene ma voglio un'immagine in un'altra cartella. nomi immagine nella mia cartella:Come creare un video da immagini con FFmpeg?

img001.jpg 
img002.jpg 
img003.jpg 
... 

Come in immagini da un'altra cartella? esempio: "C: \ mypics"

Ho provato questo codice ma solo ffmpeg ha impostato il video per la prima immagine (img001.jpg).

ffmpeg -r 1/5 -start_number 0 -i C:\myimages\img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

risposta

45

Vedi l'Create a video slideshow from images – FFmpeg

Se il video non mostra i frame correttamente In caso di problemi, come ad esempio la prima immagine viene saltato o mostra solo per un fotogramma, quindi utilizzare il filtro video fps anziché -r per il framerate di uscita

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4 

alternativa il filtro formato video possono essere aggiunti al filterChain sostituire -pix_fmt YUV420P come "fps = 25, formato = YUV420P". Il vantaggio di questo metodo è che si può controllare quale filtro va in primo luogo

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4 

ho provato al di sotto dei parametri, ha funzionato per me

"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4 

sotto i parametri anche lavorato ma salta sempre la prima immagine

"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4 

rendendo il video dalle immagini poste in diverse cartelle

prima aggiungere percorsi di immagine per imagepaths.txt come qui di seguito.


# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate 

file 'E:\images\png\images__%3d.jpg' 
file 'E:\images\jpg\images__%3d.jpg' 

utilizzo di esempio come segue;


"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4" 

-safe 0 parametro impedisce nomi di file non sicuri errore

Link correlati

FFmpeg making video from images placed in different folders

FFMPEG An Intermediate Guide/image sequence

Concatenate – FFmpeg

+0

sì, ha funzionato anche per me, grazie. – user3877422

+0

_ "Se il tuo video non mostra correttamente i fotogrammi Se incontri problemi, come la prima immagine viene saltata o viene visualizzata solo per un fotogramma, usa invece il filtro video fps" _ Scusa ma potresti spiegare per favore cosa significa "filtro video fps" esattamente? – arnuschky

+1

Per quanto ne so il parametro -r è frame rate variabile, ciò significa che FFMPEG potrebbe eliminare o duplicare i frame per ottenere la frequenza dei fotogrammi in uscita desiderata. Usando il filtro fps "-vf fps = value" forza FFMPEG a produrre un frame rate costante. Vedi [Crea una presentazione video da immagini - FFmpeg] (https://trac.ffmpeg.org/wiki/Create%20a%20video%20slideshow%20from%20images#Ifyourvideodoesnonshowtheframescorrectly), e questo [Qual è la differenza (tecnica) tra -r e il filtro fps?] (http://ffmpeg.org/pipermail/ffmpeg-user/2013-July/016273.html). Quindi, usando il parametro ** -r ** a volte riusciamo a saltare la prima immagine .. – khan

18

-pattern_type glob

Questa grande opzione che rende più facile per selezionare le immagini in molti casi:

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' \ 
    -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

Nota tuttavia che, nonostante il nome, questo non è così generale, come i modelli della shell, es .: -i '*' fallisce: https://trac.ffmpeg.org/ticket/3620 (apparentemente perché il tipo di file è dedotto dall'estensione).

-r 30 è di superare i bug a giocatori come VLC per basse framerate: Playback issues in VLC with low fps video from images using ffmpeg

Vedi anche:

provata su ffmpeg 2.8.6, Ubuntu 16.04.