33 votes

Commande FFmpeg pour convertir les MP3 en AAC

Je peux lancer cette commande :

ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.m4a 

pour créer un fichier m4a.

Mais quand je lance cette commande

ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.aac

ffmpeg jette une erreur en disant

Impossible d'écrire l'en-tête du fichier de sortie #0 (paramètres de codec incorrects ?).

De plus, la taille du fichier m4a est vraiment presque 5,8 fois plus grande que le fichier original, ce qui n'est absolument pas ce que je voulais et la raison pour laquelle je voulais convertir en AAC.

57voto

slhck Points 209720

Comment puis-je convertir en AAC ?

C'est la commande FFmpeg la plus basique pour convertir l'entrée en audio AAC en utilisant la meilleure qualité AAC dont dispose FFmpeg. libfdk_aac est l'encodeur Fraunhofer AAC, et il est disponible lorsque vous avez compilé FFmpeg avec son support.

ffmpeg -i input.mp3 -c:a libfdk_aac output.m4a

Pour modifier la qualité, vous avez deux possibilités :

  • Pour un débit binaire variable (VBR), utilisez le bouton -vbr option. Par exemple, -vbr 4 est un bon choix (environ 128 kBit/s pour un son stéréo). Plus il est élevé, mieux c'est. Les valeurs vont de 1 à 5.

    ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 4 output.m4a
  • Pour un débit binaire fixe (CBR), utilisez l'option -b:a l'option, par exemple -b:a 128k . 128 kBit/s devrait suffire dans la plupart des situations. Vous pouvez souvent choisir un débit inférieur.

    ffmpeg -i input.mp3 -c:a libfdk_aac -b:a 128k output.m4a

Vous pouvez également utiliser le profil HE-AAC (v1/v2) au lieu du profil AAC-LC (low complexity) par défaut, qui est mieux adapté aux faibles débits :

ffmpeg -i input.mp3 -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a

Et si je n'ai pas libfdk_aac ?

Certaines versions de FFmpeg ne disposent pas de libfdk_aac (pour des raisons de licence). Si c'est le cas, vous pouvez utiliser l'encodeur AAC intégré :

ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a

Cet encodeur ne prend pas en charge VBR correctement, donc si vous avez besoin de cela ou de HE-AAC, lisez la suite.

Vous pouvez compiler ffmpeg vous-même et ajouter libfdk_aac soutien. Il existe des guides sur le Wiki FFmpeg . La compilation est facile sous Linux, modérément facile sous OS X, et plutôt difficile sous Windows. Lorsque vous suivez les guides de compilation et installez les bibliothèques appropriées avant, FFmpeg vous donne maintenant la possibilité d'utiliser libfdk_aac .


Il y avait quelques problèmes avec votre approche originale :

  • alac n'est pas AAC. ALAC est le Codec audio Apple Lossless alors que la CAA est Codage audio avancé .

  • C'est pourquoi votre sortie est plus grande que l'entrée, car contrairement au MP3, l'ALAC est toujours compressé, mais il doit être sans perte - c'est pourquoi il doit stocker plus de données.

  • .aac n'est pas un conteneur de sortie pour l'audio ALAC. Si vous utilisez AAC, cela devrait fonctionner. Mais j'utiliserais plutôt MP4 ou M4A.

6voto

SaltySub2 Points 151

Conversion facile en AAC pour Zeranoe Windows Builds

ffmpeg -i input.mp3 -c:a aac -b:a 128k output.m4a

Utilisez "aac" au lieu de libfaac ou libfdk_aac : https://trac.ffmpeg.org/wiki/Encode/AAC

"FFmpeg peut supporter trois encodeurs AAC-LC (aac, libfaac, libfdk_aac) et un encodeur HE-AAC(v1/2) (libfdk_aac). Les licences de libfaac et libfdk_aac ne sont pas compatibles avec la GPL, aussi la GPL ne permet pas la distribution de binaires contenant du code sous licence de ces licences lorsque du code sous licence GPL est également inclus. "

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X