Wie kann ich verlustfrei eine Audiospur auf ein stumm geschaltetes h264 / mp4-Video anwenden?

2321
poplitea

Ich habe ein MP4 / h.264-Video ohne Ton. ffmpegWie kann ich mit oder ähnlichem eine Audiospur auf diese MP4-Datei anwenden, ohne die Qualität des Videos zu beeinträchtigen (dh ohne die Videospur neu zu codieren)?

Ich würde Lösungen mit freier Software bevorzugen, die entweder für Win7, Ubuntu oder FreeBSD verfügbar sind.

4

3 Antworten auf die Frage

10
slhck

Der korrekte FFmpeg-Befehl lautet:

ffmpeg -i video.mp4 -i audio.mp4 -map 0:0 -map 1:0 -c copy output.mp4 

Dadurch werden zwei Eingangsströme bereitgestellt, das Video, das Sie bereits haben, und das Audio, z. B. aus einer MP4-Datei mit AAC-Audio, und diese über die -mapOptionen zusammenführen.

Hier ist die erste Zahl in 0:0der Eingabedatei ( 0für die Videodatei und 1für die Audiodatei) und die zweite Zahl ist der Stream aus dieser Datei ( 0da es nur jeweils einen Stream gibt, Video oder Audio). Die beiden Streams werden der einen Ausgabedatei zugeordnet, also zuerst Video und dann Audio.

Die Bitstreams werden mit der -c copyOption kopiert und nicht neu codiert . Sie können dies in der FFmpeg-Ausgabe beobachten:

Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #1:0 -> #0:1 (copy) 
Süss! Besonders schön, dass Sie die Argumente und die Verwendung des Mappings erläutert haben. poplitea vor 11 Jahren 0
Möglicherweise möchten Sie "-shortest", wenn Sie nur die Dauer der kürzesten Eingabe festlegen möchten (hilfreich, wenn das Audio Musik ist, die länger als das Video ist). mark4o vor 11 Jahren 4
1
thornomad

You can use ffmpeg to accomplish that. I'm just doing it from the back of my weakened brain but maybe something like this would work:

ffmpeg -i movie-file.mp4 -i audio-file.mp3 -c:v copy -c:a copy output.mp4 
Das ist was ich suche. Obwohl ich bereits "ffmpeg" verwendet habe, kann ich mich nicht an seine Argumente erinnern. Ich nehme an, sie haben mit Codec / Format zu tun, aber wofür stehen `-v: c`,` -a: c` und `-an`? poplitea vor 11 Jahren 0
Die Optionen sollten "-c: v" und "-c: a" sein, nicht "-v: c" und "-a: c". Mit `-an` deaktivieren Sie auch die Audioausgabe, sodass die Ergebnisdatei wieder kein Audio enthält. Wenn Sie Dateien zusammenführen, müssen Sie sie explizit zuordnen, es sei denn, FFmpeg kann raten, was Sie möchten (z. B. Zusammenfügen von AVI-Video + WAV-Audio) / cc @poplitea slhck vor 11 Jahren 2
Ooops - habe die in meinem Gehirn geschaltet. Schön, etwas Neues über das Mapping zu lernen. Vielen Dank. thornomad vor 11 Jahren 0
-1
To Do

Es gibt einige Open-Source-Video-Editoren.

Unter Windows gibt es Windows Movie Maker oder Microsoft Live Movie Maker. Ich habe jedoch keine Erfahrung mit diesen.

Unter Linux gibt es OpenShot, das sehr einfach zu bedienen ist.

Das Problem bei nichtlinearen Editoren ist, dass Sie keine sehr einfache Bitstream-Kopie erstellen können. Wenn Sie ein Beispiel dafür zeigen könnten, wäre dies sehr hilfreich - ich bin nicht sicher, ob es machbar ist. slhck vor 11 Jahren 0
Sie importieren Ihre Videodatei und Ihre Audiodatei. Dann ziehen Sie es einfach nach unten (die Zeitleiste). Sie machen dasselbe mit Ihrer Audiodatei. Dann exportieren Sie Ihr Projekt und wählen die gewünschten Einstellungen aus. Sie können es vor dem Exportieren in der Vorschau anzeigen. Nicht sicher, ob Sie das fragen. To Do vor 11 Jahren 0
Was ich damit meine, ist, dass die meisten Editoren beim Exportieren des Projekts die Video- und Audioströme neu codieren (basierend auf den Exporteinstellungen, z. B. in einige h.264 / AAC). Sie kopieren jedoch den Bitstrom nicht wie er ist. Das Umcodieren macht die Qualität schlechter, und das OP wollte eine Bitstream-Kopie erstellen. Kennen Sie Editoren, die dies tun, oder können Windows Movie Maker / OpenShot dies tun? slhck vor 11 Jahren 0
Ich habe Pitivi auf Ubuntu verwendet, das eine "Direc" -Option für Video und Audio hatte. Ich denke, dass das Originalformat einfach kopiert wird, da die Kodierung viel schneller als mit den normalen Einstellungen durchgeführt wurde. Sagte, Pitivi sei zumindest damals (vor 1 Jahr) sehr instabil gewesen. To Do vor 11 Jahren 0