web-dev-qa-db-fra.com

Convertissez .flac en .mp3 avec ffmpeg en conservant toutes les métadonnées

Comment puis-je convertir .flac en .mp3 avec ffmpeg, en conservant toutes les métadonnées (convertissant le commentaire Vorbis en fichiers .flac en métadonnées ID3v2 de .mp3)?

59
Vito Gentile

La commande suivante permet de conserver une qualité élevée sur le fichier .mp3 (320 kbps) et les métadonnées du fichier .flac sont converties au format ID3v2, qui peut être inclus dans les fichiers .mp3:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
110
Vito Gentile

Réponse parfaite ci-dessus. Je l'utilise avec find pour ajouter tous les fichiers FLAC d'une sous-arborescence à iTunes avec cette commande

find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \;

Pour ajouter automatiquement les fichiers résultants à iTunes, obtenez le répertoire d'importation iTunes avec

find ~/Music/ -name "Automatically Add*"

résultat, par exemple 

/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized

Puis exécutez par exemple.

find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" \;

Pour ajouter automatiquement toutes les pistes converties à iTunes.

37
user2707001

Si vous voulez économiser un peu d’espace, essayez la recommandation de hydrogenaud.io :

Très haute qualité: écoute HiFi, à la maison ou silencieuse, avec la meilleure taille de fichier -V0 (~245 kbps), -V1 (~225 kbps), -V2 (~190 kbps) ou -V3 (~175 kbps) sont recommandés . Ces paramètres VBR produiront normalement des résultats transparents. Des différences audibles entre ces préréglages peuvent exister, mais sont rares.

Source: http://wiki.hydrogenaud.io/index.php?title=LAME

Si vous souhaitez utiliser cette option dans ffmpeg, vous devez utiliser l'alias -q:a 0.

Contrôlez la qualité avec -qscale:a (ou l'alias -q:a). Les valeurs sont spécifiques à l'encodeur. Ainsi, pour libmp3lame, la plage est comprise entre 0 et 9, une valeur inférieure correspondant à une qualité supérieure. 0-3 produira normalement des résultats transparents, 4 (par défaut) devrait être proche de la transparence perceptuelle et 6 produit une qualité "acceptable". L'option -qscale:a est associée à l'option -V dans l'outil d'interface de ligne de commande autonome lame.

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

Si vous souhaitez également utiliser les métatags ID3v1, vous devez ajouter le paramètre -write_id3v1 1.

Donc ma dernière commande est:

ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3
9
wiktor

Je testais la commande suivante pour convertir le fichier infile.flac en outfile.mp3:

ffmpeg  -i infile.flac  -q:a 0  outfile.mp3

Depuis Ubuntu 16.04, la commande ci-dessus semble copier (la plupart des? Toutes?) Les métadonnées.

-q:a 0 indique à ffmpeg d'utiliser le VBR de la plus haute qualité.

Cependant, ffmpeg transcodait la pochette de mon album de jpeg à png, ce qui a augmenté la taille de la couverture.

Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> png (native))
  Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))

(Je suppose que la conversion ci-dessus est logique vu la façon dont fonctionne ffmpeg .)

Après quelques recherches, j'ai trouvé l'option -c:v copy, qui spécifie que le flux vidéo doit être copié plutôt que transcodé. La commande complète est:

ffmpeg  -i infile.flac  -c:v copy  -q:a 0  outfile.mp3

La commande ci-dessus a pour résultat:

Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
7
mpb

Pour convertir récursivement en mp3 tous les fichiers flac dans des dossiers imbriqués, j'ai utilisé cette commande:

find '~/Music/' -iname '*.flac' -exec bash -c 'D=$(dirname "{}"); B=$(basename "{}"); mkdir "$D/mp3/"; ffmpeg -i "{}" -ab 320k -map_metadata 0 -id3v2_version 3 -acodec libmp3lame "$D/mp3/${B%.*}.mp3"' \;

Il créera un dossier nommé "mp3" dans celui contenant les fichiers flac et, à l'intérieur du dossier mp3, sauvegardera les fichiers mp3 relatifs au débit de 320 kbps, sans conserver le nom de l'ancienne extension de fichier.

3
Riccardo Volpe

Je sais que cela n'a pas été demandé, mais compte tenu du fait que l'une des raisons pour lesquelles cela est fait (du moins c'est ce que je voulais faire) est pour que la musique puisse être importée dans Apple iTunes qui ne prend pas en charge FLAC. Dans ce cas, il est plus logique de convertir FLAC au format sans perte d’Apple, m4a. J'ai utilisé cette commande pour convertir tous les fichiers du dossier actuel, tout en conservant des tailles de fichiers similaires.

find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a \;

1
Dhiraj Gupta

One-Liner pour convertir tous les fichiers .flac en .mp3 dans un répertoire unique, en conservant les métadonnées most

for file in *.flac; do ffmpeg -i $file -q:a 0 ${file:r}.mp3; done

(Remarque: ${file:r} supprime l'extension du chemin de fichier donné)

 ffmpeg: flac to mp3

1
woudsma

Ce flac2mp3.sh script utilise ffmpeg pour convertir une arborescence de dossiers de fichiers FLAC en une autre arborescence de dossiers de fichiers MP3. L'art de couverture est inclus, le cas échéant. Vous pouvez définir une variable CORES pour créer des travaux en arrière-plan afin de convertir plusieurs fichiers à la fois.

0
Rick O'Sullivan