Depuis longtemps, j'utilise une technique relativement maladroite qui implique Audacity avec un plugin LAME. C'est bien, je suppose, mais l'attrait de l'approche Terminal est que je peux être un peu plus fin avec mes [options]
et peut-être utiliser des binaires plus à jour.
De plus, mon MacBook vieillit un peu maintenant et si je peux me débarrasser d'une interface graphique inutile, tant mieux.
Merci d'avance.
Réponses:
Conversion d'un seul fichier sans conserver les balises
--decode --stdout
=-dc
lame - $outfile
= entrée de STDIN--preset extreme
= ~ 245 kbit / s VBRUn script shell qui conserve certaines balises ID3
Pour utiliser le script, il suffit de l'enregistrer quelque part comme
~/bin/flac2mp3
et de le rendre exécutable avecchmod +x ~/bin/flac2mp3
.Cela convertirait tous les fichiers flac de votre dossier Musique:
Ou légèrement plus rapide, car il n'appelle flac2mp3 qu'une seule fois:
la source
${file%.flac}.mp3
est génial! Auparavant, j'utilisais${x:: ${#x}-3}m4a
pour changer le nom de fichier de la chanson de .wav en .m4a. Génial de voir un moyen qui semble un peu plus facile.!/bin/sh file="$1" outfile=${file%.flac}.mp3 eval $(metaflac --export-tags-to - "$file" | sed "s/=\(.*\)/='\1'/") flac -cd "$file" | lame --preset standard \ --add-id3v2 --tt "$TITLE" --ta "$ARTIST" --tl "$ALBUM" \ --ty "$DATE" --tn "$TRACKNUMBER" --tg "$GENRE" \ - "$outfile"
ffmpeg conserverait les balises (mais pas les illustrations) par défaut.
-aq 1
correspond à-V 1
boiteux.-acodec libfaac
convertirait les fichiers en AAC:la source
J'ai pris ce que vous aviez, mais je l'ai fait fonctionner encore plus rapidement en utilisant
xargs
pour paralléliser les travaux.Ensuite, voici le script ci-dessus / usr / local / bin / flac2mp3
et voici quelques statistiques pour l'accélération des performances en utilisant le parallélisme.
vous pouvez voir qu'il a également utilisé mes processeurs plus efficacement, j'ai un Intel i7, donc 8 est probablement le bon nombre de processus.
la source
Trouvé ce fil en essayant de faire l'encodage direct des MP3 à partir des fichiers source FLAC. La réponse de Boehj fournit une option de script décente, mais je préfère personnellement utiliser FFmpeg, c'est donc le script Bash que j'ai trouvé pour gérer cette tâche. Testé et fonctionne très bien dans macOS Sierra (10.12.2).
Les avantages indirects: Vous devriez avoir
ffmpeg
etlame
déjà installé sur votre Mac. La façon la plus simple de le faire est via Homebrew. Assurez-vous d'abord que Homebrew est installé comme ceci:Exécutez ensuite cette commande pour installer
ffmpeg
etlame
:Une fois cela fait, vous êtes prêt à exécuter ce script. Ce script recherchera les fichiers FLAC dans le répertoire,
path/to/FLAC/files
mais cela peut être modifié simplement.
si les fichiers FLAC se trouvent dans le même répertoire que celui dansmp3/
lequel vous exécutez ce script. Lorsqu'il s'exécute, il crée un sous-répertoire où tous les fichiers MP3 seront mis.Quelques notes sur des choses que j'ai apprises «The Hard Way ™» afin que d'autres puissent tirer profit de ce que j'ai fait différemment dans ce script par rapport à d'autres sur Internet.
grep
commandes pour l'analyse des balises (en utilisant FFprobe qui est installé avec FFmpeg) ne respectent pas la casse en utilisant l'-i
option pour le rendregrep -i
.cut
commande suivante se limite désormais à diviser la sortie uniquement sur la base du premier=
dans un nom de balise avec l'-f 2-
option qui rend la commandecut -d '=' -f 2-
. Par exemple, Pavement a une chanson intitulée «5-4 = Unity» et si seulement le deuxième morceau avait été sélectionné via la coupe, ce titre aurait été tronqué à «5-4».sed
qui supprime les zéros non significatifs:sed 's/^0*//'
.-f wav
et cela compresserait en fait la sortie FFmpeg, ce qui n'a aucun sens dans une configuration de canal où LAME va le ré-encoder. Au lieu de cela, la sortie ici est définie sur-f s16le -acodec pcm_s16le
laquelle est essentiellement la sortie RAW; parfait pour diriger l'audio vers un autre processus comme celui-ci.-r
option.--tt
,--ta
,--tl
,--tn
et les--tg
options de tag ID3v2 pour BOITEUX. Lorsque l'audio est diffusé / canalisé d'un processus dans LAME, les métadonnées du fichier source sont perdues. Une option proposée est d'obtenir FFmpeg pour enregistrer les métadonnées dans un fichier texte en définissant l'option avec-f ffmetadata "[metadata filename here]"
puis à nouveau FFmpeg courir avec quelque chose comme ceci:-i "[metadata filename here]" -map_metadata 1 -c:a copy [destination mp3 file] id3v2_version 3 -write_id3v1 1
. Cela fonctionne, mais notez l'exigence d'un fichier de destination. On dirait que FFmpeg importe uniquement des métadonnées lorsqu'il peut copier le fichier, ce qui semble être un processus très coûteux. En utilisant FFprobe pour obtenir des valeurs, puis les mettre en BOITEUX avec--tt
,--ta
,--tl
,--tn
et les--tg
options fonctionne mieux; toutes les métadonnées sont écrites sur place, donc un fichier en double doit être généré.la source