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)?
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
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.
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
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))
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.
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 \;
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.