Alle Audiospuren / Streams extrahieren
Damit werden alle Audiodaten in einer Datei zusammengefasst:
ffmpeg -i input.mov -map 0:a -c copy output.mov
-map 0:a
wählt alle nur Audioströme. Video und Untertitel werden nicht berücksichtigt.
-c copy
ermöglicht Stream-Kopie Modus. Dabei wird der Ton kopiert und nicht neu kodiert. entfernen -c copy
wenn Sie möchten, dass der Ton neu kodiert wird.
- Wählen Sie ein Ausgabeformat, das Ihr Audioformat unterstützt. Siehe Vergleich der Containerformate .
Extrahieren einer bestimmten Tonspur/eines bestimmten Streams
Beispiel für die Extraktion des Audiostroms Nr. 4:
ffmpeg -i input.mkv -map 0:a:3 -c copy output.m4a
-map 0:a:3
wählt nur den Audiostrom #4 aus ( ffmpeg
beginnt mit der Zählung von 0).
-c copy
ermöglicht Stream-Kopie Modus. Dabei wird der Ton kopiert und nicht neu kodiert. entfernen -c copy
wenn Sie möchten, dass der Ton neu kodiert wird.
- Wählen Sie ein Ausgabeformat, das Ihr Audioformat unterstützt. Siehe Vergleich der Containerformate .
Audio extrahieren und neu kodieren / Format ändern
Ähnlich wie bei den obigen Beispielen, aber ohne -c copy
. Verschiedene Beispiele:
ffmpeg -i input.mp4 -map 0:a output.mp3
ffmpeg -i input.mkv -map 0:a output.m4a
ffmpeg -i input.avi -map 0:a -c:a aac output.mka
ffmpeg -i input.mp4 output.wav
Alle Audioströme einzeln extrahieren
Dieser Eingang hat in diesem Beispiel 4 Audioströme. Jeder Audiostrom wird als einzelne Datei ausgegeben.
ffmpeg -i input.mov -map 0:a:0 output0.wav -map 0:a:1 output1.wav -map 0:a:2 output2.wav -map 0:a:3 output3.wav
Optional hinzufügen -c copy
vor jedem Ausgabedateinamen, um die Stream-Kopie Modus.
Einen bestimmten Kanal extrahieren
Verwenden Sie die Kanalspaltfilter . Beispiel für das Abrufen des rechten Frontkanals (FR) von einem Stereoeingang:
ffmpeg -i stereo.wav -filter_complex "[0:a]channelsplit=channel_layout=stereo:channels=FR[right]" -map "[right]" front_right.wav
channel_layout
ist die Kanalbelegung des Eingangs. Es wird nicht automatisch erkannt, daher müssen Sie den Namen des Layouts angeben.
channels
listet den/die Kanal/Kanäle auf, den/die Sie extrahieren möchten.
- Siehe
ffmpeg -layouts
für Audiokanal-Layoutnamen (für channel_layout
) und Kanalnamen (für channels
).
- Verwendung von Stream-Kopie Modus (
-c copy
) kann beim Filtern nicht verwendet werden, so dass das Audio neu kodiert werden muss.
- Siehe FFmpeg-Wiki: Audio-Kanäle für weitere Beispiele.
Was ist der Unterschied zwischen -map
y -vn
?
ffmpeg
hat einen Standard Stromauswahl Verhalten, das 1 Stream pro Streamtyp auswählt (1 Video, 1 Audio, 1 Untertitel, 1 Daten).
-vn
ist eine alte, veraltete Option. Sie schließt Video vom Standardverhalten bei der Streamauswahl aus. Audio, Untertitel und Daten werden also weiterhin automatisch ausgewählt, es sei denn, dies wird mit -an
, -sn
o -dn
.
-map
ist komplizierter, aber flexibler und nützlicher. -map
deaktiviert das Standardverhalten der Streamauswahl und ffmpeg
wird nur das aufnehmen, was Sie ihm mit -map
Option(en). -map
kann auch verwendet werden, um bestimmte Streams oder Stream-Typen auszuschließen. Zum Beispiel, -map 0 -map -0:v
würde alle Ströme umfassen außer alle Videos.
Siehe FFmpeg-Wiki: Karte für weitere Beispiele.
Fehler
Ungültiger Audiostrom. Es ist genau ein MP3-Audiostream erforderlich.
MP3 unterstützt nur 1 Audiostrom. Der Fehler bedeutet, dass Sie versuchen, mehr als einen Audiostrom in MP3 zu übertragen. Es kann auch bedeuten, dass Sie versuchen, Nicht-MP3-Audio in MP3 zu übertragen.
WAVE-Dateien haben genau einen Stream
Ähnlich wie oben.
Tag für Codec in Stream #0 nicht gefunden, Codec wird derzeit im Container nicht unterstützt
Sie versuchen, ein Audioformat in eine Ausgabe zu übertragen, die es nicht unterstützt, z. B. PCM (WAV) in MP4.
entfernen -c copy
, wählen Sie ein anderes Ausgabeformat (ändern Sie die Dateinamenerweiterung) oder wählen Sie manuell den Encoder (z. B. -c:a aac
).
Siehe Vergleich der Containerformate .
Header für Ausgabedatei #0 konnte nicht geschrieben werden (falsche Codec-Parameter ?): Ungültiges Argument
Dies ist ein nutzloser, allgemeiner Fehler. Der eigentliche, informative Fehler sollte unmittelbar vor dieser allgemeinen Fehlermeldung stehen.