2011-05-01 07:45:34 +0000 2011-05-01 07:45:34 +0000
178
178

Come unire file audio e video in ffmpeg

Voglio unire un file audio (formato .wav o .au) con un file video (formato .mp4).

Vi prego di suggerirmi come fare. Voglio unire questi file in un nuovo file video .mp4. Un comando ffmpeg sarebbe molto gradito.

Risposte (5)

286
286
286
2011-05-01 09:53:57 +0000

Unendo video e audio, con ricodifica audio

Si veda questo esempio, tratto da questa voce del blog ma aggiornato per una sintassi più recente. Dovrebbe essere qualcosa di:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4
``` ```
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Qui si suppone che il file video non contenga ancora alcun flusso audio, e che si voglia avere lo stesso formato di uscita (qui, MP4) del formato di ingresso.

Il comando di cui sopra transcodifica l'audio, poiché gli MP4 non possono trasportare flussi audio PCM. È possibile utilizzare qualsiasi altro codec audio desiderato, se lo si desidera. Vedere la AAC Encoding Guide per maggiori informazioni.

Se il vostro flusso audio o video è più lungo, potete aggiungere l'opzione -shortest in modo che ffmpeg smetta di codificare una volta terminato un file.

Copiare l'audio senza ricodificare

Se il vostro contenitore di uscita è in grado di gestire (quasi) qualsiasi codec - come MKV - allora potete semplicemente copiare sia i flussi audio che video:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4
``` &001 


### Sostituzione del flusso audio 

Se il vostro video in ingresso contiene già l'audio, e volete sostituirlo, dovete dire a ffmpeg quale flusso audio prendere: 


&001 &001 


L'opzione [ `map` ](https://trac.ffmpeg.org/wiki/How%20to%20use%20-map%20option) fa sì che ffmpeg usi solo il primo flusso video dal primo ingresso e il primo flusso audio dal secondo ingresso per il file in uscita.
16
16
16
2015-01-10 01:11:26 +0000

Dal momento che non mi è permesso scrivere commenti alla prima risposta con la mia reputazione, un addendum qui, perché ho avuto questo problema durante la codifica dei webms. Se il tuo flusso audio è per esempio più lungo del flusso video , devi tagliarlo o altrimenti avrai l'ultimo fotogramma video come fermo immagine e audio in esecuzione.

Per tagliare uno dei due stream, potete usare -ss [hh:mm:ss] -t [ss] prima di ciascuno dei -i “file.ext”. -ss […] definirà il punto di partenza per tagliare -t […] definirà la lunghezza del segmento in secondi

Esempio:

ffmpeg.exe -ss 00:00:10 -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
8
8
8
2015-04-16 07:18:25 +0000

-apri il comando promt (windows+r ->cmd->enter)

-allora vai all'interno della cartella dove hai il file audio e video

applica questo cmd

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Enter…..otterrai un nuovo file chiamato outPutFime.mp4 (un file unito di audio e video)

5
5
5
2015-03-05 15:29:32 +0000

Questo ha funzionato per me:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
1
1
1
2013-03-12 22:47:37 +0000

Provate a usare il mencoder (sì, è basato su ffmpeg, ma non si sa mai). Io uso l'argomento -audiofile. Generalmente uso ffmpeg, però, quindi seguite questo consiglio con un pizzico di sale.

E, se usate Windows, Mediacoder (non più open source purtroppo) funziona… è fondamentalmente un frontend per un sacco di encoder gnu e alcuni non-free.