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.