Wie kann ich 2 oder mehr MP4-Dateien in einer endgültigen MP4-Ausgabedatei zusammenfügen oder zusammenführen?
Ich habe im DOS-Fenster versucht, den Befehl COPY zu verwenden (ich habe ihn irgendwo gelesen), aber er funktioniert nicht gut.
Wie kann ich 2 oder mehr MP4-Dateien in einer endgültigen MP4-Ausgabedatei zusammenfügen oder zusammenführen?
Ich habe im DOS-Fenster versucht, den Befehl COPY zu verwenden (ich habe ihn irgendwo gelesen), aber er funktioniert nicht gut.
Antworten:
MP4Box kann dies, obwohl Sie möglicherweise eine GUI wie YAMB oder My MP4Box GUI verwenden möchten . (NB: Es ist nicht mein persönliches Programm, das ist nur der Name.) MP4Box-Binärdateien für Windows sind auf dieser Site verfügbar .
Beispiel:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
Ich würde empfehlen, ffmpeg zu verwenden , das für Mac OS X, Linux und Windows verfügbar ist .
Hier ist ein gutes Beispiel dafür, wie zwei Filme verkettet werden: http://www.ffmpeg.org/faq.html#SEC27
Im letzten Schritt müssen Sie nur sicherstellen, dass Sie einen MP4-Container für die resultierende Datei erstellen.
Sie können dies mit ffmpeg versuchen:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf 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. Sie werden in einen neuen Transportstromcontainer gestellt, wodurch die Verkettung vereinfacht wird. Anschließend werden sie wieder zu einem MP4 verkettet. Wenn output.mp4 bereits vorhanden ist, schlägt der Befehl fehl. In der obigen Version werden Named Pipes verwendet. Sie befinden sich auf einem System, das die Verwendung von Zwischendateien nicht unterstützt:
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
Update: Habe gerade Avidemux überprüft, nachdem ich die andere Antwort gelesen hatte. Es ist das, wonach Sie suchen (hätte nicht gedacht, dass es aufgrund seines Namens MP4 kann…).
Ich denke, VirtualDubMod ist mp4-fähig, ich habe es aber nicht benutzt, also weiß ich es nicht genau.
Vielleicht möchten Sie MeGUI ausprobieren . Es ist eine ziemlich komplexe und funktionsreiche App und Tools.
Das Tool zum Einbetten in einen Container (in Ihrem Fall mp4) heißt muxer, das man aber wahrscheinlich nicht verketten kann.
Sie können es in Kombination mit VirtualDub verwenden. Virtualdub, um die Videostreams zu verketten, und der Muxer, um sie wieder in eine mp4-Datei umzuwandeln (ohne sie neu codieren zu müssen).
Ich mache es mit mencoder, nachdem ich sie mit ffmpeg in avi konvertiert habe
Hier ist ein einfaches Skript, vorausgesetzt, Sie haben 15 Dateien mit dem Namen 01.mp4 ... 15.mp4
#!/bin/bash
for j in `seq -w 1 15`;
do
echo converting file $j.avi
ffmpeg -i $j.mp4 $j.avi
echo adding file $j.avi to list
z="$z $j.avi"
done
echo doing append
mencoder -oac copy -ovc copy $z -o all.avi
Prost
Hier ist der Befehl:
ffmpeg -i concat:"video1.ts|video2.ts"