Konvertieren Sie Audiodateien mit ffmpeg in MP3

159

Ich muss Audiodateien mit ffmpeg in MP3 konvertieren.

Wenn ich den Befehl als schreibe ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, erhalte ich folgende Fehlermeldung:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
Input #0, mp3, from 'ZHRE.mp3':
  Duration: 00:04:12.52, start: 0.000000, bitrate: 208 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s
Output #0, mp3, to 'audio.mp3':
    Stream #0.0: Audio: 0x0000, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Unsupported codec for output stream #0.0

Ich habe auch diesen Befehl ausgeführt:

 ffmpeg -formats | grep mp3

und bekam dies als Antwort:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
 DE mp3             MPEG audio layer 3
 D A    mp3             MP3 (MPEG audio layer 3)
 D A    mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
 D A    mp3on4          MP3onMP4
 text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra

Ich denke, dass der MP3-Codec nicht installiert ist. Bin ich hier auf dem richtigen Weg?

Hrishikesh Choudhari
quelle

Antworten:

230

Sie können diesen Befehl verwenden:

ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3

Erläuterung der verwendeten Argumente in diesem Beispiel:

  • -i - Eingabedatei

  • -vn - Deaktivieren Sie Video, um sicherzustellen, dass kein Video (einschließlich Album-Titelbild) enthalten ist, wenn die Quelle eine Videodatei wäre

  • -ar- Stellen Sie die Audio-Abtastfrequenz ein. Für Ausgabestreams wird standardmäßig die Frequenz des entsprechenden Eingabestreams festgelegt. Für Eingabestreams ist diese Option nur für Audio-Grabbing-Geräte und Raw-Demuxer sinnvoll und wird den entsprechenden Demuxer-Optionen zugeordnet.

  • -ac- Stellen Sie die Anzahl der Audiokanäle ein. Für Ausgangsströme ist standardmäßig die Anzahl der Eingangs-Audiokanäle eingestellt. Für Eingabestreams ist diese Option nur für Audio-Grabbing-Geräte und Raw-Demuxer sinnvoll und wird den entsprechenden Demuxer-Optionen zugeordnet. Wird hier verwendet, um sicherzustellen, dass es sich um Stereo handelt (2 Kanäle).

  • -b:a - Konvertiert die Audio-Bitrate auf exakte 192 kbit pro Sekunde

Frank
quelle
5
Dies stellt den Unterschied für die Argumente der ffmpeg-Bitrate fest . -qscale:aist für VBR und -b:aist für CBR. ABR-Codierung ist möglich, wird jedoch an einer anderen Stelle detailliert beschrieben.
1934286
2
Ich würde -b: a durch -q: a 2 ersetzen, was VBR ~ 192 anstelle von CBR ergeben würde
apanloco
@apanloco für mich, das Ändern von -b zu -q metzelt den Ton absolut. Wenn Sie überhaupt keine Optionen verwenden oder die in der Antwort angegebenen Optionen verwenden, klingt dies praktisch genauso wie die Quelle .wav.
Michael Teter
76

1) WAV zu MP3

ffmpeg -i audio.wav -acodec libmp3lame audio.mp3

2) ogg zu mp3

ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3

3) ac3 bis mp3

ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3

4) aac zu mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Ijas Ahamed N.
quelle
Wie legen Sie die MP3-Bitrate fest?
Suragch
4
Fügen Sie -b:a 128kfür 128 kbps hinzu.
Gyan
5
Oder noch kürzer ohne acodec: ffmpeg -i audio.aac audio.mp3
Timo
Wie konvertiere ich von .mp3 nach .ogg?
Cristea Victor
18

Keine Ursache,

Ich konvertiere meine Audiodateien mit dem folgenden Befehl in mp2:

ffmpeg -i input.wav -f mp2 output.mp3

Dieser Befehl funktioniert einwandfrei.

Ich weiß, dass dies tatsächlich die Dateien in das MP2-Format konvertiert, aber dann sind die resultierenden Dateigrößen gleich.

Hrishikesh Choudhari
quelle
2
Erzeugt eine Wave-Datei
LtWorf
8
Dies führt nicht zu einer MP3-Datei
m13r
2
Obwohl die Größen gleich sind, können diese MP2-Dateien in einem Webbrowser nicht abgespielt werden , da sie keine MP3- Dateien sind . Nicht einmal mit einem Flash-Player. Der einzige Vorteil, den sie haben, ist, dass sie weniger CPU zum Codieren benötigen, aber die Nachteile sind es nicht wert.
Daniel F
3
Dies sollte nicht die akzeptierte Antwort sein, da sie die Frage nicht richtig beantwortet.
Reinierpost
18

Für die Stapelverarbeitung mit Dateien im Ordner mit dem Ziel 190 VBR und der Dateierweiterung = .mp3 anstelle von .ac3.mp3 können Sie den folgenden Code verwenden

Ändern Sie .ac3 in das Quell-Audioformat.

ffmpeg MP3-Einstellungen

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
Plan B
quelle
13

Für Stapelverarbeitungsdateien im Ordner:

for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%}.mp3"; done

Dieses Skript konvertiert alle "WAV" -Dateien im Ordner in MP3-Dateien und fügt die MP3-Erweiterung hinzu

ffmpeg muss installiert sein. (Siehe andere Antworten)

MKK
quelle
1
Mit -f mp2MP2 wird kein MP3 generiert. Ändern Sie es zu-f mp3
Gyan
3
Der obige Befehl erstellt Dateien mit Namen wav.mp3. Um Dateien mit der richtigen Dateierweiterung zu erhalten, ändern Sie den Befehl in:, for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; donedh fügen Sie .*danach hinzu i%.
Suzana
11

Ich musste mein ffmpeg löschen und dann ein anderes von einem ppa installieren:

sudo apt-get purge ffmpeg
sudo apt-add-repository -y ppa:jon-severinsson/ffmpeg 
sudo apt-get update 
sudo apt-get install ffmpeg

Dann konvertieren:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
Komu
quelle
4
Dies ist der kurze Weg, aber wenn Sie die Qualität kb pro Sekunde angeben möchten, verwenden Sie -ab 192k
wrivas
7

Wie hier beschrieben , wird die Eingabe- und Ausgabeerweiterung von erkannt, ffmpegsodass Sie sich keine Gedanken über die Formate machen müssen. Führen Sie einfach diesen Befehl aus:

ffmpeg -i inputFile.ogg outputFile.mp3

Kasra K.
quelle
2

https://trac.ffmpeg.org/wiki/Encode/MP3

VBR-Codierung:

ffmpeg -vn -ar 44100 -ac 2 -q:a 1 -codec:a libmp3lame output.mp3
Guillaume M.
quelle
2
Sie haben die Eingabe vergessen.
Llogan
2

Hohe Qualität für Mac OS funktioniert perfekt!

ffmpeg -i input.wma -q:a 0 output.mp3

Ivan Sanchez
quelle
1

Versuchen Sie es mit FFmpeg Static Build Link

Dokumentation: https://www.johnvansickle.com/ffmpeg/

Hosten Sie den statischen Build auf Ihrem Server im selben Verzeichnis

$ffmpeg = dirname(__FILE__).'/ffmpeg';

$command = $ffmpeg.'ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3';

shell_exec($command);
Codebuch
quelle
0

Wenn Sie einen Ordner und einen Unterordner mit WAVs haben, die Sie konvertieren möchten, fügen Sie den folgenden Befehl in eine Datei ein, speichern Sie ihn in einer .bat-Datei im Stammverzeichnis des Ordners, in den Sie konvertieren möchten, und führen Sie dann die bat-Datei aus

for /R %%g in (*.wav) do start /b /wait "" "C:\ffmpeg-4.0.1-win64-static\bin\ffmpeg" -threads 16 -i "%%g" -acodec libmp3lame "%%~dpng.mp3" && del "%%g"
Dinesh Rajan
quelle