Convertir des fichiers audio en mp3 à l'aide de ffmpeg

159

J'ai besoin de convertir des fichiers audio en mp3 en utilisant ffmpeg.

Lorsque j'écris la commande comme ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, j'obtiens l'erreur:

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

J'ai également exécuté cette commande:

 ffmpeg -formats | grep mp3

et j'ai obtenu ceci en réponse:

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

Je suppose que le codec mp3 n'est pas installé. Suis-je sur la bonne voie ici?

Hrishikesh Choudhari
la source

Réponses:

230

Vous pouvez utiliser cette commande:

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

Explication des arguments utilisés dans cet exemple:

  • -i - fichier d'entrée

  • -vn - Désactivez la vidéo, pour vous assurer qu'aucune vidéo (y compris l'image de couverture de l'album) n'est incluse si la source serait un fichier vidéo

  • -ar- Réglez la fréquence d'échantillonnage audio. Pour les flux de sortie, il est défini par défaut sur la fréquence du flux d'entrée correspondant. Pour les flux d'entrée, cette option n'a de sens que pour les périphériques de capture audio et les démultiplexeurs bruts et est mappée aux options de démultiplexeur correspondantes.

  • -ac- Réglez le nombre de canaux audio. Pour les flux de sortie, il est défini par défaut sur le nombre de canaux audio d'entrée. Pour les flux d'entrée, cette option n'a de sens que pour les périphériques de capture audio et les démultiplexeurs bruts et est mappée aux options de démultiplexeur correspondantes. Donc utilisé ici pour s'assurer qu'il est stéréo (2 canaux)

  • -b:a - Convertit le débit audio pour qu'il soit exact 192kbit par seconde

Franc
la source
5
Ceci note la différence pour les arguments de débit binaire ffmpeg . -qscale:aest pour VBR et -b:aest pour CBR. L'encodage ABR est possible mais détaillé à un endroit différent.
1934286
2
Je remplacerais -b: a par -q: a 2, ce qui donnerait VBR ~ 192 au lieu de CBR
apanloco
@apanloco pour moi, changer -b en -q abat absolument le son. En n'utilisant aucune option ou en utilisant les options présentées dans la réponse, le son est pratiquement le même que le .wav source.
Michael Teter
77

1) wav en mp3

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

2) ogg en mp3

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

3) ac3 en mp3

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

4) AAC en MP3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Ijas Ahamed N
la source
Comment spécifiez-vous le débit binaire mp3?
Suragch
4
Ajouter -b:a 128kpour 128 kbps.
Gyan
5
Ou encore plus court sans acodec: ffmpeg -i audio.aac audio.mp3
Timo
comment convertir de .mp3 en .ogg?
Cristea Victor le
19

Pour le traitement par lots avec des fichiers dans un dossier visant 190 VBR et l'extension de fichier = .mp3 au lieu de .ac3.mp3, vous pouvez utiliser le code suivant

Remplacez .ac3 par le format audio source.

paramètres mp3 ffmpeg

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
plan B
la source
18

Ça ne fait rien,

Je convertis mes fichiers audio en mp2 en utilisant la commande:

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

Cette commande fonctionne parfaitement.

Je sais que cela convertit en fait les fichiers au format mp2, mais les tailles de fichier résultantes sont les mêmes.

Hrishikesh Choudhari
la source
2
Génère un fichier wave
LtWorf
8
Cela ne donne pas de fichier mp3
m13r
2
Bien que les tailles soient les mêmes, ces fichiers mp2 ne sont pas lisibles dans un navigateur Web , car ils ne sont pas des mp3. Pas même avec un lecteur flash. Le seul avantage qu'ils ont est qu'ils nécessitent moins de processeurs pour encoder, mais les inconvénients n'en valent pas la peine.
Daniel F
3
Cela ne devrait pas être la réponse acceptée, car elle ne répond pas correctement à la question.
reinierpost
13

Pour le traitement par lots des fichiers dans le dossier:

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

Ce script convertit tous les fichiers "wav" du dossier en fichiers mp3 et ajoute l'extension mp3

ffmpeg doit être installé. (Voir d'autres réponses)

MKK
la source
1
Avec -f mp2MP2 est généré, pas MP3. Changer pour-f mp3
Gyan
3
La commande ci-dessus crée des fichiers nommés wav.mp3. Pour obtenir des fichiers avec l'extension de fichier correcte, changez la commande en:, c'est-à for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; done-dire ajouter .*après i%.
Suzana
11

J'ai dû purger mon ffmpeg puis en installer un autre à partir d'un ppa:

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

Puis convertissez:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
Komu
la source
4
c'est le chemin le plus court, mais si vous voulez spécifier la qualité kb par seconde, utilisez -ab 192k
wrivas
7

Comme décrit ici , l'extension d'entrée et de sortie sera détectée par ffmpegil n'y a donc pas besoin de s'inquiéter des formats, exécutez simplement cette commande:

ffmpeg -i inputFile.ogg outputFile.mp3

Kasra K
la source
2

La haute qualité pour Mac OS fonctionne parfaitement!

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

Ivan Sanchez
la source
1

Essayez FFmpeg Static Build Link

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

Hébergez la compilation statique sur votre serveur dans le même répertoire

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

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

shell_exec($command);
Livre de codes
la source
0

Si vous avez un dossier et un sous-dossier pleins de wav que vous souhaitez convertir, placez la commande ci-dessous dans un fichier, enregistrez-le dans un fichier .bat à la racine du dossier où vous souhaitez convertir, puis exécutez le fichier bat

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
la source