concatenare file video

Spesso può essere utile attaccare uno di seguito all’altro degli spezzoni di video, senza bisogno di aggiungere transizioni, dissolvenze o altro. In questo caso si può usare il comando ffmpeg, elencando in un file di testo i nomi dei file da concatenare:

ffmpeg -f concat -i lista -c copy output.mp4

io metto i nomi dei file in un file di testo chiamato lista, in cui sono riportati, uno per riga, i file da unire, ad esempio file1, file2 e file3. I nomi vanno indicati tra apici:

file 'file1.mov'
file 'file2.mov'
file 'file3.mov'

I file singoli e il file “lista” dovranno essere tutti nella stessa directory.

Il risultato finale sarà un file chiamato, nel caso dell’esempio “output.mp4”

NB: se l’elenco è molto lungo, con i seguenti comandi è possibile creare rapidamente un file lista che riporta, per esempio, tutti i file .MP4 presenti nella directory, in un file di testo pronto all’uso

ls -l *.MP4 | awk '{ print "file \047",$9,"\047" }' OFS="" >lista

Il risultato del comando ls -l *.MP4 viene inviato al comando awk, che antepone file ' e pospone ' al nome del file che trova (la posizione 9 nell’elenco dei nomi ottenuto con ls è il nome del file). OFS (Otput Field Separator) server a concatenare le varie parti senza separatori. Poichè l’apice è un carattere significativo nella sintassi di awk, per scrivere il caratte ' bisogna usare il codice \047