Commande FFmpeg pour convertir MP3 en AAC

Je peux émettre cette commande:

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

Pour créer un fichier m4a.

Mais lorsque je lance cette commande

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

Ffmpeg lance une erreur en disant

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

En outre, la taille du fichier m4a est vraiment presque 5,8 fois plus grande que le fichier d'origine, ce qui n'est absolument pas ce que je voulais et pourquoi je voulais convertir en AAC.

Comment puis-je convertir en AAC?

C'est la commande FFmpeg la plus simple pour convertir l'entrée en audio AAC à l'aide de la plus haute qualité AAC FFmpeg a. libfdk_aac est l'encodeur Fraunhofer AAC, et il est disponible lorsque vous avez compilé FFmpeg avec prise en charge.

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

Pour modifier la qualité, vous avez deux options:

  • Pour le bitrate variable (VBR), utilisez l'option -vbr . Par exemple, -vbr 4 est un bon choix (environ 128 kBit / s pour l'audio stéréo). Plus élevé signifie mieux. Les valeurs varient de 1 à 5.

     ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 4 output.m4a 
  • Pour le bitrate fixe (CBR), utilisez l'option -b:a , par exemple -b:a 128k . 128 kBit / s devrait être assez bon pour la plupart des situations. Vous pouvez souvent choisir quelque chose de plus bas.

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

Vous pouvez également utiliser HE-AAC (v1 / v2) au lieu du profil AAC-LC (faible complexité) par défaut, qui convient le mieux aux débits binaires bas:

 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 n'ont pas libfdk_aac (pour des raisons de licence). Si c'est le cas, vous pouvez utiliser le codeur AAC intégré:

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

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

Vous pouvez compiler ffmpeg vous-même et ajouter le support libfdk_aac . Il existe des guides sur le FFmpeg Wiki . La compilation est simple sur Linux, modérément simple sur OS X, et plutôt difficile sur 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 a eu des problèmes avec votre approche originale:

  • alac n'est pas AAC. ALAC est le codec audio Apple Lossless , alors qu'AAC est un codage audio avancé .

  • C'est pourquoi votre sortie est plus grande que l'entrée, car en contraste avec MP3, ALAC est encore 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. J'utiliserais MP4 ou M4A cependant.

Facile à convertir 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 prendre en charge trois codeurs 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, de sorte que la GPL ne permet pas La distribution des fichiers binaires contenant le code sous licence sous ces licences lorsque le code sous licence GPL est également inclus. "