Ich habe eine mp4-Videodatei mit mehreren Audiospuren. Ich würde gerne den Rest der Tracks entfernen und nur einen behalten. Wie mache ich das?
video-editing
Tshepang
quelle
quelle
Antworten:
Führen Sie zunächst aus,
ffmpeg -i file.mp4
um festzustellen, welche Streams in Ihrer Datei vorhanden sind. Sie sollten so etwas sehen:Führen Sie dann
ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
den Befehl aus, um den Videostream und den zweiten Audiostream zu kopierennew_file.mp4
.quelle
Option map (set input stream mapping) cannot be applied to input file file.mp4 new_file.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
: Um ihn zu beheben, ändern Sie einfach die Reihenfolge der Argumente wie folgt:ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
-c copy
um identischen Streams für Audio, Video, sondern auch Untertitel:ffmpeg -i input.mp4 -map 0:0 -map 0:2 -c copy output.mp4
.Verwandte Probleme: So können Sie alle Audiotracks aus einer MP3-Datei entfernen :
quelle
The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
Aber ich habe diese Flags hinzugefügt und es ist immer noch dasselbe ...?Identifizieren Sie die Stream-Nummern:
Verwenden
-map _file_:_stream_
Sie diese Option, um auszuwählen, welche Streams verarbeitet und ausgegeben werden sollenSiehe: https://ffmpeg.org/ffmpeg.html#Advanced-options
quelle
Sie können versuchen,
avidemux
welche Audiodatei nur intern verarbeitet (und Sie daher zwingen, eine bestimmte Spur auszuwählen). Ich habe es noch nie mit .mp4 versucht, aber es funktioniert mit anderen Formaten.quelle
Ich habe mehrmals Avidemux (GUI) und ffmpeg (Konsole) verwendet.
In Avidemux wählen Sie im Hauptmenü "Audio" -> "Titel auswählen". Speichern Sie dann Ihr Video als neue Datei.
Interessanterweise lieferte Avidemux in einigen Fällen eine "bessere" Ausgabe als ffmpeg.
Für alle Fälle befinden sich Avidemux und ffmpeg im Standard-Fedora-Linux-Repository. (Ich bin sicher, dass sie auch in anderen Linux-Versionen Standard sind.)
quelle
-vn
oder-an
entfernt alle Video- oder Audiospuren. Durch die Bereitstellung-vn -acodec copy
wird das Video entfernt.-an -vcodec copy
Alle Audiodaten werden entfernt.-vcodec copy
Gibt an, dass ffmpeg eine direkte Kopie der vorhandenen Videospur erstellen soll (und keine Verarbeitung / Codierung vornehmen soll). Wenn Sie es nicht angeben, funktioniert es weiterhin, aber ffmpeg kann die vorhandene Videospur neu codieren und der Vorgang beansprucht mehr CPU und kann erheblich länger dauern.quelle
Verwendung von Avidemux in der Befehlszeile.
(In der Avidemux-Benutzeroberfläche, wie oben unter https://unix.stackexchange.com/a/85834/4319 beschrieben , wählen Sie einfach die Audiospuren aus bzw. entfernen die Auswahl und speichern die Datei. (Alles wird in die neue AVI kopiert.)
Ich habe mir angesehen, welche Projekte für meine Aktionen als SpiderMonkey- oder TinyPy-Projekte gespeichert wurden, und es stellte sich heraus, dass das SpiderMonkey-Projekt (JavaScript) nicht über die erforderlichen Audiospurauswahlaktionen verfügt, das TinyPy-Projekt (Python) jedoch Sie.
Ich habe alles entfernt, was nichts damit zu tun hat (ein Dutzend nicht benötigter Zeilen), und dies habe ich in meinem
some_series.py
:Es verlässt Spur 1, lässt aber Spur 0 fallen.
Dann habe ich eine Stapelkonvertierung vieler Dateien mit einem Befehl wie diesem ausgeführt:
Es kopiert alles, löscht aber alle bis auf die benötigte Audiospur.
Die Möglichkeit, Avidemux von der Kommandozeile aus auszuführen, habe ich von https://www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processing gelernt , obwohl dort nicht die Python-Skripte erwähnt werden, sondern nur die JS-Skripte ( was bei mir nicht funktioniert hat).
quelle
Wenn Sie nichts dagegen haben, dass das Programm eine grafische Benutzeroberfläche ist , können Sie dies und vieles mehr mit dem Video-Editor von Blender tun.
quelle
Das
ffmpeg
Programm wurde durch ersetztavconv
.avconv
hat eine sehr ähnliche Verwendung wieffmpeg
, daher können alle Befehle in diesem Beitrag ungefähr so lauten:Folgen Sie diesem Link , um
avconv
Ubuntu zu installieren .quelle
FFMPEG könnte eine hilfreiche Lösung für Sie sein.
quelle