Wie zum entfernen eines Tracks aus video-Datei mit ffmpeg?
Wie zu entfernen Sie nur eine Spur (nicht alle) von video-container-Datei (.vob oder .mkv) mit ffmpeg?
Ich weiß, ich kann nur kopieren video (-c:v copy -an
) und bestimmte Audiospur aus container in zwei getrennten Dateien und dann sich Ihnen anzuschließen.
Aber gibt es einen einfacheren Weg? Kann ich einfach entfernen Sie bestimmte audio-Spur aus container? ffmpeg-Befehl?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die effizienteste Methode ist die Verwendung negative mapping in der
-map
option zum ausschließen bestimmter stream(s), während alle anderen Flüsse.Entfernen einer bestimmten audio-stream
-map 0
wählt alle streams aus der Eingabe.-map -0:a:2
dann aufheben der audio-stream 3. Die stream-index, beginnt die Zählung bei 0, sodass audio stream 100:a:9
.Entfernen Sie alle audio-streams
-map 0
wählt alle streams aus der Eingabe.-map -0:a
dann hebt die Auswahl aller audio-streams aus dem Eingang.Entfernen der anderen stream-Typen
Wenn Sie entfernen möchten anderen stream-Typen, die Sie verwenden können, die entsprechenden stream-Planer.
v
- video, wie-map -0:v
a
- audio, wie-map -0:a
(wie oben gezeigt)s
- Untertitel, wie-map -0:s
d
- Daten, wie-map -0:d
ffmpeg -i input -map 0 -map -0:a -c copy output
Ähnlich, um zu löschen alle video:ffmpeg -i input -map 0 -map -0:v -c copy output
Du suchst
-map
.Habe ich geändert, um mit
avconv
, aber es sollte etwa die gleiche sein.Lassen Sie uns sagen, Sie haben eine Datei namens "input.vob" mit einer video-und zwei audio-tracks; und Sie will haben " - Ausgabe.vob" mit dem video und der letzten audio.
Würden Sie tun:
Sollten Sie beachten, dass:
-map 0:1
-an
, weil es audio-tracks. Allerdings, wenn es keine audio-tracks auf alle, die Sie verwenden müssen, um solch ein Attribut.Können Sie keine Dateien Bearbeiten "in-place" -, Sie brauchen, um zu speichern in eine andere Datei.
P. S. möchten Sie bitten, solche Fragen auf video.stackexchange.com nächste mal.