688 Stimmen

Wie kann ich mit ffmpeg Audio aus Videos extrahieren?

Ich habe den folgenden Befehl ausprobiert, um Audio aus Video zu extrahieren:

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3

aber ich erhalte die folgende Ausgabe

libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0
SamplE.avi: Invalid data found when processing input

Kann mir jemand helfen, bitte?

12voto

Iulian Onofrei Punkte 8365

Wer nach einer einfacheren Möglichkeit sucht, Audio aus einer Videodatei zu extrahieren und dabei die Parameter der ursprünglichen Videodatei beizubehalten, kann diese verwenden:

ffmpeg -i <video_file_name.extension> <audio_file_name.extension>

Zum Beispiel beim Laufen:

ffmpeg -i screencap.mov screencap.mp3

extrahiert ein mp3 Audiodatei von einer mov Video-Datei.

11voto

Álvaro Punkte 2852

Die Befehlszeile ist korrekt und funktioniert mit einer gültigen Videodatei. Ich würde sicherstellen, dass Sie die richtige Bibliothek installiert haben, um mit mp3 arbeiten, installieren lame o Sonde mit einem anderen Audio-Codec.

Normalerweise

ffmpeg -formats

ou

ffmpeg -codecs

würde genügend Informationen liefern, damit Sie mehr wissen.

11voto

Suragch Punkte 420096

So kodieren Sie mp3-Audio ffmpeg.org zeigt das folgende Beispiel:

ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3

Ich habe den Ton aus einem Video extrahiert, indem ich einfach die input.wav mit dem Dateinamen des Videos. Die 2 bedeutet 190 kb/sec. Die anderen Qualitätsstufen können Sie unter dem obigen Link einsehen.

10voto

Artem Vasiliev Punkte 1853

Das habe ich gerade verwendet:

ffmpeg -i my.mkv -map 0:3 -vn -b:a 320k my.mp3

Erklärung der Optionen:

  • my.mkv ist eine Quellvideodatei, Sie können auch andere Formate verwenden
  • -map 0:3 bedeutet, dass ich den 3. Stream von der Videodatei möchte. Setzen Sie Ihr N dort ein - Videodateien haben oft mehrere Audio-Streams; Sie können es weglassen oder verwenden -map 0:a um den Standard-Audiostream zu übernehmen. ausführen ffprobe my.mkv um zu sehen, welche Streams die Videodatei hat.
  • my.mp3 ist ein Ziel-Audiodateiname, und ffmpeg erkennt anhand der Erweiterung, dass ich eine MP3-Datei möchte. In meinem Fall ist der Quell-Audiostream ac3 DTS und einfaches Kopieren war nicht das, was ich wollte
  • 320k ist eine gewünschte Zielbitrate
  • -vn bedeutet, dass ich kein Video in der Zieldatei haben möchte

5voto

Antonin GAVREL Punkte 7751

Erstellen eines Hörbuchs aus mehreren Videoclips

  1. Zuerst extrahiere ich den Ton (als `.m4a) aus einer Reihe von h264-Dateien:

    for f in *.mp4; do ffmpeg -i "$f" -vn -c:a copy "$(basename "$f" .mp4).m4a"; done

die -vn deaktiviert die Videoausgabe (automatische Auswahl oder Zuordnung eines beliebigen Videostroms). Für vollständige manuelle Steuerung siehe die -map Option.

Optional

  1. Wenn es ein Intro von, sagen wir, 40 Sekunden gibt, können Sie es mit der Taste -ss Parameter:

    for f in *.m4a; do ffmpeg -i "$f" -ss 00:00:40 -c copy crop/"$f"; done

  2. Um alle Dateien in einer zusammenzufassen:

    ffmpeg -f concat -safe 0 -i <(for f in ./*.m4a; do echo "file '$PWD/$f'"; done) -c copy output.m4a

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X