Come faccio a creare un video timelapse da una raccolta di fotografie in Linux?


19

Voglio creare un timelapse da una raccolta di immagini, sotto Ubuntu. Vorrei realizzare video HD e aggiungere idealmente una colonna sonora.


Non l'ho visto. Posso eliminare questa domanda e inserire la mia risposta lì. È ok?
— Frederico Schardong,

Non sono nemmeno sicuro che questo sia il miglior sito di stackexchange per questo. Voglio solo condividere quello che ho fatto.
— Frederico Schardong,

C'è una domanda simile su askubuntu.com . Le risposte sono per lo più trattate qui al momento della scrittura, ma ciò potrebbe cambiare in futuro, ovviamente.
— anarcat,

Risposte:


11

Ffmpeg lo farà. Se hai delle immagini, img001.jpg, img002.jpg, img003.jpg, ...sulla riga di comando fai:

ffmpeg -i img*.jpg output.mpeg

Ci sono più opzioni fornite in ffmpeg --helpo pagine man o web. Ciò consente il controllo della frequenza dei fotogrammi e del formato di output.


L'utilizzo di questo produce un errore per me, poiché considera gli ultimi .jpgfile come file di output. Capisco File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]- non così eccezionale. La mia soluzione era quella di generare un elenco di file con \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txte quindi caricarlo con ffmpeg -f concat -i files.txt output.mpeg.
— anarcat,

Con altre versioni di ffmpeg la seguente versione funziona senza tentare di sovrascrivere le immagini:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg
— Patrick R.

9

Innanzitutto rinominiamo tutti i file * .JPG in base alla data di creazione. A volte le telecamere cambiano il nome del file o semplicemente ordinarle non è in qualche modo ciò che vogliamo. Tuttavia, rinominarli entro la data di creazione funziona sempre:

jhead -n%Y%m%d-%H%M%S *.JPG

Dopodiché inseriamo questo elenco in un file:

ls -1tr | grep -v files.txt > files.txt

Quindi utilizzare mencoderper creare un AVIvideo usando 20 fps. Nota che questo genererà un enorme file video, di solito con le stesse dimensioni di tutte le immagini sommate.

mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'

Di solito fotografo foto con timelapse con la risoluzione più bassa della mia fotocamera (5 MP), con un rapporto di aspec di 4: 3. Per generare un video 1080p corretto, l'immagine viene prima ridimensionata a 1920 pixel di larghezza, quindi la ritaglio a 1080 di altezza. In questo modo non sto modificando il contenuto delle foto, sto solo ritagliando:

ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi

Il motivo per cui utilizzo mencoder per mettere insieme le foto è perché ho ottenuto un file segmentation faultcon ffmpeg.


Per il segfault sarebbe utile conoscere la tua versione di ffmpeg.
— Unapiedra,

Se come me hai girato in 3: 2 (i miei fermi D750 sono 6016x4016) e ne hai bisogno in 16: 9 (per video 4k) 3840x2160 puoi usare FFMPEG per Pillerbox il video e riempire le linee del tram nero ai lati con questo comando - ffmpeg -i output.avi -qscale 0 -vf "scale = 3840: 2160: force_original_aspect_ratio = diminuisci, pad = 3840: 2160: (ow-iw) / 2: (oh-ih) / 2" output-final.avi - Video sarà più grande ma nessuna perdita di qualità in quanto si tratta di un ridimensionamento
— Rob

nel tuo ffmpegcomando, -sameqora l'opzione è sostituita da-qscale 0
— transang

3

Blender è una buona soluzione se hai a che fare con motion timelapse (hyperlapse) o riprese instabili. Ha funzionalità di motion tracking in modo da poter scegliere un punto fisso da tracciare durante il timelapse. Puoi anche risolvere i problemi di rotazione.



0

Puoi usare mencoder. Le opzioni sono abbastanza esplicite:

  • elenca tutti i tuoi file di immagini.

Se si trovano tutti nella directory corrente con i nomi ordinati e si desidera l'elenco nel file /tmp/files.txt:

ls -1 *jpg > /tmp/files.txt

  • Utilizzare mencoder con l'opzione appropriata.

Se vuoi che il file di output sia /tmp/test.avi con 30fps:

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt


0

Kdenlive può anche generare timelaps utilizzando il Add Slideshow Clipmenu, come spiegato in questo tutorial .

Secondo lo stesso sito , Openshot ha una funzionalità simile ma non lo consiglia perché è "troppo difettoso". Tuttavia, se è il tuo editor video preferito, sarai felice di sapere che puoi semplicemente trascinare e rilasciare una sequenza di file con nome appropriato (da 001.jpg a NNN.jpg) in una finestra di Openshot per importarli anche come timelapse.


Quella guida è del 2014. OpenShot ha dimostrato molto negli ultimi anni, ora è molto più affidabile.
— vclaw
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.