Convertissez .flac en .mp3 avec ffmpeg, en conservant toutes les métadonnées
88
Comment puis-je convertir .flac en .mp3 avec ffmpeg, en conservant toutes les métadonnées (c'est-à-dire en convertissant les commentaires Vorbis dans les fichiers .flac en métadonnées ID3v2 de .mp3)?
Veuillez noter que pour la prochaine fois, vous devriez poser ffmpegdes questions sur l'utilisation de cli à Super User . Stack Overflow est uniquement pour les questions impliquant la programmation. De plus, FLAC ne prend officiellement en charge que les commentaires Vorbis , donc je suppose que vous voulez convertir en ID3v2 au lieu de "garder".
llogan le
Ok, j'ai résolu ma question. J'ai posé la question ici parce que j'ai vu des questions comme celle-ci sur StackOverflow (par exemple ceci ou cela ), et j'ai supposé qu'il pourrait être intéressant de partager mes connaissances. Aussi, je vois qu'il y a une balise ffmpeg , alors pourquoi ne pas partager ma solution ici? ffmpeg est utilisé dans de nombreuses applications par de nombreux développeurs.
Vito Gentile
3
La balise ffmpeg dit: "Les questions sur l'utilisation interactive de l'outil de ligne de commande FFmpeg doivent être posées sur Super User.". Ce n'est pas un gros problème, mais je voulais juste le souligner car il y a trop de questions hors sujet ici à mon avis.
llogan le
Réponses:
152
La commande suivante conserve une qualité élevée sur .mp3 (320 kbps) et les métadonnées du fichier .flac sont converties au format ID3v2, qui peut être inclus dans les fichiers .mp3:
Il est à noter que "ffmpeg" devra peut-être être remplacé par "avconv".
shockburner
5
FWIW ffmpeg3.2 copie automatiquement les métadonnées dans ID3v2 à partir de FLAC sans avoir besoin de spécifier -map_metadata 0 -id3v2_version 3, bien qu'il ne copie pas dans les balises ID3v1. J'utilise un outil séparé pour cela.
Dai
1
les paroles ne sont toujours pas copiées
user151496
1
Est-ce qu'il divise flac s'il y a plusieurs parties?
Artyom
1
@Artyom Vous devriez probablement avoir le fichier de repère avec votre flac où les points de partage sont marqués. Si tel est le cas, vous pouvez utiliser shnsplit (console) ou flacon (GUI) pour diviser votre fichier et convertir les parties en mp3. Si vous n'avez qu'un seul flac, vous pouvez soit lui écrire un cui , soit utiliser les options -ss et -t de ffmpeg pour couper chaque morceau.
56
Réponse parfaite ci-dessus. Je l'utilise avec find pour ajouter tous les fichiers FLAC d'un sous-arbre à iTunes avec cette commande
Anecdote: tous les utilisateurs de notre entreprise ont des noms d'étoiles, abrégés en 3 à 5 caractères. Le mien est "sirius", bref monsieur;)
user2707001
Option "nom" non reconnue.
MonsterMMORPG
14
Si vous souhaitez gagner un peu d'espace, essayez la recommandation de hydrogenaud.io :
Très haute qualité: HiFi, maison ou écoute calme, avec la meilleure taille du 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.
Si vous souhaitez utiliser cette option dans ffmpeg, vous devez utiliser l' -q:a 0alias.
Contrôlez la qualité avec -qscale:a(ou l'alias -q:a). Les valeurs sont spécifiques à l'encodeur, donc pour libmp3lame, la plage est comprise entre 0 et 9 où une valeur inférieure est 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 produira une qualité "acceptable". L'option -qscale:aest mappée à l' -Voption dans l'outil d'interface de ligne de commande lame autonome.
Après quelques recherches, j'ai trouvé l' -c:v copyoption, qui spécifie que le flux vidéo doit être copié plutôt que transcodé. La commande complète est:
Il créera un dossier nommé "mp3" à l'intérieur de celui contenant les fichiers flac et, à l'intérieur du dossier mp3, il enregistrera les fichiers mp3 relatifs avec un débit binaire de 320 kbps, sans conserver l'ancienne extension de fichier dans le nom.
:rsemble être un zshmodificateur, qui ne fonctionne pas bash. Dans Bash, vous pouvez remplacer "${file:r}.mp3"par "${file%.flac}.mp3".
mivk
pour afficher uniquement le nom de fichier du fichier, en utilisation bash${file%.*}
Evhz
2
Je sais que cela n'a pas été demandé, mais étant donné que l'une des raisons pour lesquelles cela est fait (du moins c'est ce que je voulais faire) est que la musique puisse être importée dans Apple iTunes qui ne prend pas en charge FLAC. Dans ce cas, il est plus judicieux 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 fichier similaires.
Option "nom" non reconnue. Erreur lors du fractionnement de la liste des arguments: Option introuvable
MonsterMMORPG
@MonsterMMORPG vous avez probablement manqué de taper le fichier. après la commande find. Le . indique à find de chercher dans le dossier courant et -name lui demande de rechercher les noms de fichiers correspondants.
Dhiraj Gupta
2
Ce script flac2mp3.sh utilise ffmpegpour convertir une arborescence de dossiers de fichiers FLAC en une autre arborescence de dossiers de fichiers MP3. La pochette est incluse, lorsqu'elle est présente. Vous pouvez définir une CORESvariable pour créer des travaux d'arrière-plan afin de convertir plusieurs fichiers à la fois.
ffmpeg
des questions sur l'utilisation de cli à Super User . Stack Overflow est uniquement pour les questions impliquant la programmation. De plus, FLAC ne prend officiellement en charge que les commentaires Vorbis , donc je suppose que vous voulez convertir en ID3v2 au lieu de "garder".Réponses:
La commande suivante conserve une qualité élevée sur .mp3 (320 kbps) et les métadonnées du fichier .flac sont converties au format ID3v2, qui peut être inclus dans les fichiers .mp3:
la source
ffmpeg
3.2 copie automatiquement les métadonnées dans ID3v2 à partir de FLAC sans avoir besoin de spécifier-map_metadata 0 -id3v2_version 3
, bien qu'il ne copie pas dans les balises ID3v1. J'utilise un outil séparé pour cela.Réponse parfaite ci-dessus. Je l'utilise avec find pour ajouter tous les fichiers FLAC d'un sous-arbre à iTunes avec cette commande
Pour ajouter automatiquement les fichiers résultants à iTunes, obtenez le répertoire d'importation iTunes avec
résultat par exemple
Puis exécutez par exemple
Pour ajouter automatiquement toutes les pistes converties à iTunes.
la source
Si vous souhaitez gagner un peu d'espace, essayez la recommandation de hydrogenaud.io :
Source: http://wiki.hydrogenaud.io/index.php?title=LAME
Si vous souhaitez utiliser cette option dans ffmpeg, vous devez utiliser l'
-q:a 0
alias.Source: https://trac.ffmpeg.org/wiki/Encode/MP3
Si vous souhaitez également des balises méta ID3v1, vous devez ajouter le
-write_id3v1 1
paramètre.Ma commande finale est donc:
la source
Je testais la commande suivante pour convertir le
infile.flac
fichier enoutfile.mp3
:Depuis Ubuntu 16.04, la commande ci-dessus semble copier (surtout? Toutes?) Les métadonnées.
-q:a 0
ditffmpeg
d'utiliser le VBR de la plus haute qualité.Cependant,
ffmpeg
j'ai transcodé la pochette de mon album dejpeg
àpng
, ce qui a augmenté la taille de la pochette.(Je suppose que la conversion ci-dessus a du sens étant donné son
ffmpeg
fonctionnement .)Après quelques recherches, j'ai trouvé l'
-c:v copy
option, qui spécifie que le flux vidéo doit être copié plutôt que transcodé. La commande complète est:La commande ci-dessus entraîne:
la source
Pour convertir récursivement en mp3 tous les fichiers flac dans des dossiers imbriqués, j'ai utilisé cette commande:
Il créera un dossier nommé "mp3" à l'intérieur de celui contenant les fichiers flac et, à l'intérieur du dossier mp3, il enregistrera les fichiers mp3 relatifs avec un débit binaire de 320 kbps, sans conserver l'ancienne extension de fichier dans le nom.
la source
Une seule ligne pour convertir tous les
.flac
fichiers.mp3
dans un seul répertoire, en conservant la plupart des métadonnées: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é)la source
$file
comme"$file"
.:r
semble être unzsh
modificateur, qui ne fonctionne pasbash
. Dans Bash, vous pouvez remplacer"${file:r}.mp3"
par"${file%.flac}.mp3"
.${file%.*}
Je sais que cela n'a pas été demandé, mais étant donné que l'une des raisons pour lesquelles cela est fait (du moins c'est ce que je voulais faire) est que la musique puisse être importée dans Apple iTunes qui ne prend pas en charge FLAC. Dans ce cas, il est plus judicieux 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 fichier similaires.
find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a \;
la source
Ce script flac2mp3.sh utilise
ffmpeg
pour convertir une arborescence de dossiers de fichiers FLAC en une autre arborescence de dossiers de fichiers MP3. La pochette est incluse, lorsqu'elle est présente. Vous pouvez définir uneCORES
variable pour créer des travaux d'arrière-plan afin de convertir plusieurs fichiers à la fois.la source