Aggiungere una traccia audio ad un file video con FFmpeg

Aggiungere una traccia audio ad un file video con FFmpeg

Nel precedente articolo dedicato a FFmpeg ho illustrato come fare per suddividere e concatenare video. Oggi invece voglio mostrare come aggiungere una traccia audio sopra ad un file video.

Il funzionamento di FFmpeg è piuttosto semplice: dati uno o più file in ingresso, FFmpeg li riproduce secondo i parametri indicati ed applicando eventuali filtri con appositi plugin.

Unire un file audio ad un file video

In questo caso la procedura per sovrapporre un file audio, ad esempio in formato mp3 o wav, ad un file video chiede come file di ingresso le due traccie, che saranno riprodotte assieme creando il file di destinazione finale.

Ecco come fare in pratica:

ffmpeg -i video.avi -i audio.wav -map 0 -map 1 -codec copy output.avi

Come parametri del comando abbiamo i due file in input definiti dall'opzione -i, poi attraverso l'opzione -map si specifica che andranno elaborati entrambi i file. Infine con -codec copy si mantengono i codec dei due rispettivi file di origine che saranno uniti nel file output.avi.

Combinare più comandi per operazioni complesse

Questa operazione può essere combinata con altri comandi per manipolare diversi flussi audio/video in maniera anche molto complessa.

Riprendendo l'esempio degli scorsi articoli si potrebbero estrarre alcuni spezzoni di un video, eliminandone l'audio con l'opzione -nosound, poi concatenarli tra di loro e quindi aggiungere una nuova traccia audio.

mencoder -ss 00:00:00 -endpos 00:00:10 -ovc copy -nosound input.avi -o tmp1.avi
mencoder -ss 00:01:00 -endpos 00:00:10 -ovc copy -nosound input.avi -o tmp2.avi
mencoder -ss 00:02:00 -endpos 00:00:10 -ovc copy -nosound input.avi -o tmp3.avi
ffmpeg -i concat:"tmp1.avi|tmp2.avi|tmp3.avi" -c copy tmp4.avi
ffmpeg -i tmp4.avi -i audio.wav -map 0 -map 1 -codec copy output.avi

In questo esempio sono stati creati tre spezzoni da 10 secondi ciascuno (senza audio) che poi sono stati uniti tra di loro ed infine è stata aggiunta la traccia audio.

N.B: a differenza dell'esempio nel precende articolo, qui ho usato una sintassi alternativa per la concatenazione dei file video.