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

Wie man Audio- und Videodatei in ffmpeg zusammenführen kann

Ich möchte eine Audiodatei (.wav- oder .au-Format) mit einer Videodatei (.mp4-Format) zusammenführen.

Bitte schlagen Sie mir vor, wie ich das erreichen kann. Ich möchte diese Datei zu einer neuen .mp4-Videodatei zusammenführen. Ein ffmpeg-Befehl wäre sehr willkommen.

Antworten (5)

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

Verschmelzung von Video und Audio, mit Neukodierung von Audio

Siehe dieses Beispiel, das diesem Blog-Eintrag entnommen, aber für eine neuere Syntax aktualisiert wurde. Es sollte etwas im Sinne von:

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

Hier gehen wir davon aus, dass die Videodatei noch keinen Audiostrom enthält und dass Sie dasselbe Ausgabeformat (hier MP4) wie das Eingabeformat haben möchten.

Der obige Befehl transkodiert den Ton, da MP4s keine PCM-Audioströme übertragen können. Sie können jeden anderen gewünschten Audio-Codec verwenden, wenn Sie möchten. Weitere Informationen finden Sie im AAC Encoding Guide .

Wenn Ihr Audio- oder Videostrom länger ist, können Sie die Option -shortest hinzufügen, so dass ffmpeg die Codierung stoppt, sobald eine Datei endet.

Kopieren des Audios ohne erneute Kodierung

Wenn Ihr Ausgabecontainer (fast) jeden Codec verarbeiten kann - wie MKV - dann können Sie einfach sowohl Audio- als auch Videostreams kopieren:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Ersetzen des Audiostroms

Wenn Ihr Eingabevideo bereits Audio enthält und Sie es ersetzen möchten, müssen Sie ffmpeg mitteilen, welchen Audiostrom es nehmen soll:

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

Die Option map bewirkt, dass ffmpeg nur den ersten Videostrom von der ersten Eingabe und den ersten Audiostrom von der zweiten Eingabe für die Ausgabedatei verwendet.

16
16
16
2015-01-10 01:11:26 +0000

Da es mir nicht erlaubt ist, Kommentare zur ersten Antwort mit meinem Ruf zu schreiben, hier ein Nachtrag, weil ich dieses Problem bei der Kodierung von Webms hatte. Wenn Ihr Audiostrom z.B. länger als der Videostrom ist, müssen Sie ihn schneiden, sonst haben Sie den letzten Videoframe als Standbild und Audio laufen.

Um einen der beiden Streams zu schneiden, können Sie -ss [hh:mm:ss] -t [ss] vor jedem der -i “file.ext” verwenden. -ss […] definiert den Startpunkt für den Schnitt -t […] definiert die Länge des Segments in Sekunden

Beispiel:

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

-open command promt (windows+r ->cmd->enter)

-gehen Sie dann in den Ordner, in dem sich die Audio- und Videodatei befindet

wenden Sie diesen Befehl an

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

Enter….Sie erhalten eine neue Datei namens outPutFime.mp4 (eine zusammengeführte Audio- und Videodatei)

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

Das hat bei mir funktioniert:

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

Versuchen Sie es mit Mencoder (Ja, er basiert auf ffmpeg, aber man weiß ja nie). Ich verwende das Argument -audiofile. Ich benutze aber normalerweise ffmpeg, also befolge diesen Rat mit einer Prise Salz.

Und, wenn Sie Windows benutzen, funktioniert Mediacoder (leider nicht mehr Open Source)… es ist im Grunde ein Frontend für viele Gnu-Encoder und ein paar unfreie.