Wie kann ich zwei mp4-Dateien zusammenführen, ohne an Qualität zu verlieren?

194834
Paolo Bergantino

Ich habe zwei hochwertige mp4-Dateien, die aus zwei Teilen derselben Show bestehen.

Ich möchte sie in einer Datei zusammenführen, und normalerweise verwende ich VirtualDub, um meine Dateien zusammenzuführen ... Aber es scheint nicht, dass mp4 unterstützt wird.

Welche Alternativen stehen zur Verfügung (insbesondere für solche, die keine Neucodierung erfordern)?

47
Siehe auch http://stackoverflow.com/questions/7333232/concatenate-two-mp4-files-using-ffmpeg rogerdpack vor 10 Jahren 0

8 Antworten auf die Frage

39
bobince

Normalerweise verwende ich VirtualDub, um meine Dateien zusammenzuführen, aber es scheint kein mp4-Format zu sein. Welche Alternativen gibt es also?

Avidemux . Es ist wie bei VirtualDub, nur mit mehr unterstützten Formaten und integrierten Codecs und Filtern. Ich benutze es immer vorgezogen. es verbindet AVC + AAC.MP4-Dateien (ohne Umkodierung) für mich gut.

Um an ihnen in AviDemux teilzunehmen:

  1. Datei -> Öffnen -> Datei auswählen
  2. Datei -> Anhängen -> Datei auswählen
  3. Stellen Sie alles auf Kopieren
  4. Datei -> Speichern -> Dateiname
  5. Warten..

Laut AViDemux-Foren ist dieser Verbindungsvorgang verlustfrei ( http://www.avidemux.org/smf/index.php?topic=9467.0 ).

Ja, es scheint gut zu sein, das Audio synchron mit dem Video zu halten, während die Antworten der anderen Personen auf diese Frage in diesem IMHO fragwürdig sind. djangofan vor 14 Jahren 0
Ich habe versucht, mit Avidemux zwei Dateien zusammenzufügen, aber das Audio wurde nicht mehr synchron. GiddyUpHorsey vor 12 Jahren 1
Sie können Synchronisierungsprobleme bekommen, wenn die Menge an verfügbarem Audiomaterial nicht der Länge von Videoframes entspricht oder wenn der Stream beschädigt ist. Möglicherweise können Sie dies mit den Stream-Fix-Funktionen von VideoRedo oder ProjectX beheben. bobince vor 12 Jahren 0
Ich habe es gerade ausprobiert (H264-Video) und es verloren Frames an den Joins, sofern es sich nicht um I-Frames handelt, wie hier beschrieben (http://avidemux.berlios.de/doc/de/cutting.xml.html#doc_chap1_sect4) ). Nutzlos. Christopher Galpin vor 11 Jahren 0
Diese Methode hat jedoch funktioniert: http://superuser.com/a/255566/1780 Hurra! Christopher Galpin vor 11 Jahren 1
If you use AviDemux to join two Mp4 files, don't forget to select the Mp4 Demux option at the bottom left hand corner. Otherwise it may try to convert it to an avi! vor 11 Jahren 2
Das hat bei mir nicht funktioniert. Ich habe 3 Videosequenzen (jeweils 3 oder 4 Einzelvideos) verkettet und einmal geklappt, einmal nur das erste Video und einmal nur die ersten 2 Videos. Der Rest der verketteten Videos war nur ein graues Bild, auch wenn die resultierenden Videos ziemlich genau so groß waren wie die, für die sie die verketteten Versionen sein sollten. [Diese andere Antwort] (https://superuser.com/a/522658/499352) hat jedoch gut funktioniert. UTF-8 vor 7 Jahren 0
29
evilsoup

Sie können dies mit ffmpeg machen:

mkfifo temp0 temp1 ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \ ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \ ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4 

Dadurch wird nichts neu codiert, sondern in einem neuen Transportstrom-Container abgelegt, was die Verkettung vereinfacht und sie dann wieder zu einem MP4 zusammenfügt. Wenn output.mp4 bereits vorhanden ist, schlägt der Befehl fehl. Die obige Version verwendet Named Pipes, wenn Sie sich auf einem System befinden, das keine unterstützt, die Sie Zwischendateien (wie Windows) verwenden müssen:

ffmpeg -i input0.mp4 -c copy -bsf:v h264_mp4toannexb temp0.ts ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb temp1.ts ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -bsf:a aac_adtstoasc output.mp4 
kann jemand erklären, wie dies mit `avconv` anstelle von` ffmpeg` geschieht? Ich konnte die ersten beiden Schritte ausführen, aber der letzte erkennt die Option `-absf` nicht becko vor 10 Jahren 0
@becko Siehe meine Bearbeitung. Jetzt sollten Sie einen Stream-Bezeichner verwenden (siehe hier https://libav.org/avconv.html#Advanced-options). slhck vor 10 Jahren 0
+1 Nur für die zukünftige Verwendung, können Sie `ffmpeg` in den obigen Befehlen durch` avconv` ersetzen, und es funktioniert. becko vor 10 Jahren 2
12
erik

Concat Demuxer

Der concat Demuxer wurde zu ffmpeg 1.1 hinzugefügt. Wenn Ihre Version von ffmpeg zu alt ist, laden Sie die neueste statische Binärdatei von hier herunter : http://www.ffmpeg.org/download.html

Anleitung

Erstellen Sie eine Datei mylist.txtmit allen Dateien, die Sie in der folgenden Form verketten möchten (Zeilen, die mit einem Bindestrich beginnen, werden ignoriert):

# this is a comment file '/path/to/file1' file '/path/to/file2' file '/path/to/file3' 

Beachten Sie, dass diese entweder relative oder absolute Pfade sein können. Dann können Sie Ihre Dateien mit:

ffmpeg -f concat -i mylist.txt -c copy output 

Es ist möglich, diese Listendatei mit einer Bash für die Schleife oder mit printf zu erzeugen. Eine der folgenden Optionen würde eine Listendatei generieren, die alle * .wav-Dateien im Arbeitsverzeichnis enthält:

for f in ./*.wav; do echo "file '$f'" >> mylist.txt; done printf "file '%s'\n" ./*.wav > mylist.txt 

Quelle: Wiki von ffmpeg

8
Eran

YAMB ist zusammen mit MP4BOX eine gute Option.
Laden Sie beide herunter und entpacken Sie sie (es ist keine Installation erforderlich, zusammen sind es etwa 5 MB). Wählen Sie in YAMB "Einstellungen" und legen Sie den Ordnerpfad für MP4box fest.
Um mp4-Dateien beizutreten, wählen Sie Bearbeiten> Zum Beitreten klicken ...

Scheint die beste Lösung zu sein, das .mp4-Containerformat beizubehalten, was für den Autor die attraktivere Option ist ^^ Oskar Duveborn vor 15 Jahren 1
Nach Schwierigkeiten habe ich diese Konfiguration verwendet: MP4Box_path = E: \ Software \ Videobearbeitung \ Yamb-2.1.0.0_beta2 \ MP4Box \ MP4Box.exe, um 4 500 MB MP4-Dateien aus AVIDemux zusammenzuführen. Es hat nicht funktioniert. Das Programm saß nur 45 Minuten da und tat nichts, bis ich schließlich aufgab. djangofan vor 14 Jahren 0
Ich hatte Probleme mit dieser Methode wegen Audio-Synchronisationsproblemen. Es war ein Albtraum ... ich versuchte es nicht noch einmal. djangofan vor 14 Jahren 0
6

SUPER © (Vereinfachter Universal Player Encoder & Renderer) bietet den folgenden zusätzlichen Ausgabeprozess:

Jede unterstützte Multimedia-Eingabedatei kann verarbeitet werden:

 o Join Format-Identical Files. o Mux Video & Audio Streams. o DeMux Extract Streams.  

MP4 ist natürlich ein unterstütztes Format.

SUPER © ist Freeware.

Seine Benutzeroberfläche ist die schrecklichste, die ich in meinem Leben gesehen habe. Ich mache keine Witze, es ist einfach schrecklich. Ich betone es noch einmal: * Ich kann kein schlechteres Interface nennen, ich meine es ernst, ich habe noch nie etwas unter der "SUPER-Schwelle" gesehen. * Camilo Martin vor 12 Jahren 5
5
Breakthrough

Versuchen Sie es mit dem Matroska-Videocontainer.

Zunächst benötigen Sie mkvtoolnix . Laden Sie es herunter und installieren Sie es. Anschließend müssen Sie die mkvmerge-GUI starten (es sei denn, Sie mögen Befehlszeilentools, was für mich in Ordnung ist - auch wenn Sie den Abschnitt zum Verknüpfen von Dateien in der mkvmerge-Dokumentation betrachten möchten ).

Fügen Sie Ihre erste Datei hinzu, indem Sie auf "Hinzufügen" klicken. Klicken Sie dann auf "Anfügen" und öffnen Sie Ihre zweite Datei. Stellen Sie die Ausgabedatei ein, klicken Sie unten auf "Start Muxing" und los geht's!

Wenn der Container für Ihre Anforderungen ungeeignet ist, können Sie ihn erneut codieren oder versuchen, ihn in ein anderes Format zu konvertieren ... Obwohl MKV ein sehr schöner Container ist!

es muss gemult werden? Ich kann nicht ohne Muxing verbunden werden? djangofan vor 14 Jahren 0
Wenn Sie einen MKV-Container verwenden, remuxen Sie ihn technisch. Probieren Sie es aus, es gibt keine Echtzeitstrafe ... Breakthrough vor 14 Jahren 0
1
William Hilsum

Wenn Sie sie auf Ihrem System abspielen können / einen Codec installiert haben, ist Windows Movie Maker möglicherweise der schnellste (und kostenlose) Weg, um die beiden Dateien zu verbinden. Sie können dann Virtualdub verwenden, um in ein anderes Format zu konvertieren.

Audacity scheint für Audiodateien zu sein. Dies ist eine Videodatei. Paolo Bergantino vor 15 Jahren 0
Tut mir leid, ich habe falsch gelesen, ich habe nur den MP-Teil und mein Gehirn durch Kühnheit gesehen. William Hilsum vor 15 Jahren 0
Antwort bearbeiten ... William Hilsum vor 15 Jahren 0
AFAIK, Movie Maker, unterstützt kein mp4-Format. Das Konvertieren in ein anderes Format bedeutet Qualitätsverlust, den die Frage als unerwünscht bezeichnet. Eran vor 15 Jahren 0
Ich habe MovieMaker unter Windows7 ausprobiert, und das Audio wird nicht mehr synchron, wenn MP4-Dateien in ein WMV-Format eingefügt werden. Diese Option funktioniert nicht. djangofan vor 14 Jahren 0
1
harrymc

Eine andere Lösung ist Open Video Joiner . Es bewirkt auch Übergangseffekte.

Es ist zwar eine Shareware. und für 30 $ ist es nicht billig, Videodateien zusammenzuführen Eran vor 15 Jahren 0
Es wurde gesagt, Freeware zu sein. Entschuldigung, wenn ich verführt wurde. harrymc vor 15 Jahren 0