ffmpeg - Audio in Video ersetzen

48

Wie ersetze ich das Audio in einer Videodatei durch eine Audiodatei mit ffmpeg?

Ich stelle mir vor, der Befehl sieht so aus:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

Dies ist sehr ähnlich zu So ersetzen Sie einen Audiostream in einer Videodatei durch mehrere Audiostreams? Diese Frage behandelt jedoch mehrere Audiospuren, was sie sehr kompliziert macht und unklar macht, welcher Teil der Lösung für einen einfachen Audiotausch ausreicht.

qubodup
quelle

Antworten:

68

Sie sollten den Videostream ohne Neucodierung kopieren, um viel Zeit zu sparen. Die Neucodierung des Audios kann jedoch helfen, Inkompatibilitäten zu vermeiden:

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0Ordnet den ersten (Index- 0) Videostream von der Eingabe dem ersten (Index- 0) Videostream in der Ausgabe zu.

-map 1:a:0Ordnet den zweiten (Index- 1) Audiostream vom Eingang dem ersten (Index- 0) Audiostream in der Ausgabe zu.

Wenn das Audio länger als das Video ist, sollten Sie es -shortestvor dem Namen der Ausgabedatei einfügen.

Wenn Sie keinen Audio-Codec angeben, wird automatisch ein funktionierender Codec ausgewählt. Sie können eine angeben, indem Sie z. B. -c:a libvorbisnachher hinzufügen -c:v copy.

qubodup
quelle
2
oder direkt -c copyzum erneuten Muxen von Audio und Video, ohne einen der Streams neu zu codieren ^^
Francesco Yoshi Gobbo
1
Wissen Sie, wie Sie das neue Audio im selben Format (mit denselben Parametern) wie im Originalvideo konvertieren können? Ich meine, ich muss die neuen Audios genauso codieren, wie es die alten waren.
Kostanos
Funktioniert wie Charme !!
Tessaracter
@Kostanos nicht automatisch aber ich würde gerne. Bitte stellen Sie eine andere Frage. Sie können sich auf diese beziehen, um zu verdeutlichen, dass Ihre neu ist.
Qubodup