Convertir sans problème FLAC en ALAC sous Windows?


10

Je me demande si quelqu'un a un flux de travail propre et indolore pour transcoder sans perte des fichiers FLAC vers leur équivalent ALAC? C'est censé être une conversion un peu parfaite, ce qui ne devrait pas être très difficile, mais ... c'est le cas.

Pourquoi ferais-je ça? (Avant que les gens du système d'exploitation ne me mangent vivant) Principalement, parce qu'une application audio que j'utilise (Serato Scratch Live) ne prend pas en charge FLAC, et malgré la pression constante des utilisateurs au cours des cinq (!) Dernières années, très probablement pas tandis que. Ils ont cependant piraté le support de l'ALAC

En outre, il semblerait qu'il soit pratiquement impossible d'amener iTunes à lire les fichiers FLAC (et à les convertir correctement pour utiliser efficacement l'espace sur mon iPod).

Le seul hic, c'est que j'aimerais conserver des méta tags étranges et décalés (BPM et clé de morceau) qui seraient un peu pénibles à régénérer. Je suis avec rien sur Windows ou Linux

Merci

À M

Réponses:


11

Dans Ubuntu, vous pouvez ouvrir un terminal, accéder au répertoire en question et effectuer la boucle de commande suivante:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Convertira tous les .flacfichiers du répertoire en .alacfichiers, le faisant de manière parfaitement parfaite.
  • ffmpegn'est pas fourni avec Ubuntu, vous devez donc l'installer à partir des dépôts; cependant, je ne peux pas dire avec certitude que cela conservera vos informations de balise BPM.

En outre, il semblerait qu'il soit pratiquement impossible d'amener iTunes à lire les fichiers FLAC (et à les convertir correctement pour utiliser efficacement l'espace sur mon iPod).

Il existe un programme appelé flukeformac qui peut vous permettre de lire des .flacfichiers dans iTunes.
Quant à la conversion pour une utilisation efficace de l'iPod, la boucle de commande suivante fera l'affaire:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Vous voudrez peut-être remplacer --preset fast extremepar une option de débit binaire inférieur
    ( plus sur les lamepréréglages)

1
Une excellente réponse complète. Merci
Tom Corelis

J'ai essayé d'utiliser la version statique de ffmpeg dans Windows 10, il peut convertir acodec alac mais il ne peut pas convertir vcodec h264 bien que h264 soit un format pris en charge dansffmpeg --codecs
user1022209

6

Pour Windows utilisant PowerShellet ffmpeg(basé sur la réponse @boehj):

Ls -Recurse -Include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}


4

Aux toxicomanes en ligne de commande (Windows):

J'ai écrit un script d'automatisation pour iTunes pour Windows qui importe par lots tous les fichiers FLAC du dossier donné et de ses sous-dossiers dans iTunes au format ALAC, en préservant les métainformations clés telles que l'album, l'artiste et le nom de la chanson. Il nécessite flac.exeet metaflac.exeet un petit utilitaire d'aide pour la conversion du jeu de caractères. Vous pouvez télécharger un package prêt à l'emploi qui inclut ces dépendances (voir ci-dessous) ou bifurquer mon projet sur GitHub.

Pour l'histoire complète, le téléchargement binaire, les limitations, etc., reportez-vous à mon article de blog .


2

Dans Windows , vous pouvez ouvrir une invite de commande et exécuter les commandes suivantes pour convertir les fichiers FLAC à ALAC dans le même répertoire sur un autre lecteur (la façon dont je préfère l' avoir) à l' aide qaac, libFLACet iTunes:

  1. changer le répertoire de travail en cours vers le répertoire source contenant vos fichiers flac ( s:\musicest utilisé ici comme exemple)

  2. copiez tous vos dossiers dans le répertoire de destination, y compris les fichiers de couverture de l'album avec les noms de fichier ( folder.(jpg|png|gif)):

    robocopy "s:\music" "d:\music" folder.jpg folder.png folder.gif /E

    L'option /Einclut les répertoires vides. Si vous ne souhaitez pas les copier, utilisez l' /Soption.

  3. utiliser qaacpour convertir tous les fichiers FLAC de ce répertoire en fichiers ALAC sur l'autre lecteur d'une manière «peu parfaite» et en conservant la plupart des métadonnées d'origine:

    FOR /R %I IN (*.flac) DO qaac64 -A --copy-artwork -o "d:%~pI%~nI.m4a" "%I"

    L'insertion IF NOT EXIST "d:%~pI%~nI.m4a"dans la commande ci-dessus après DOignorera la conversion des fichiers qui existent déjà dans le répertoire de destination.

Veuillez noter que

  • les noms de répertoire sur le lecteur source ( s:) et destination ( d:) doivent être les mêmes (sinon vous devez bricoler avec les variables dans la FORcommande, qaacne créera pas les répertoires pour vous)
  • vous devez changer dans le répertoire source ( s:\musicdans l'exemple ci-dessus) pour que les commandes fonctionnent
  • le répertoire de destination ( d:\musicdans l'exemple ci-dessus) doit être vide pour éviter d'écraser les fichiers
  • vous pouvez utiliser la SUBSTcommande pour mapper un répertoire à une lettre de lecteur si vous souhaitez créer les fichiers ALAC sur le même lecteur
  • vous devrez exécuter au moins la version 2.57 qaacet utiliser le binaire approprié pour votre version Windows (32 bits ou 64 bits)
  • qaacdoit être dans votre PATHvariable Windows ou vous devrez inclure le chemin complet de son binaire dans la FORcommande ci-dessus
  • qaac iTunes ou QuickTime doit être installé pour fonctionner
  • qaaca besoin d'une copie correspondante de la libFLACDLL dans son répertoire pour lire les fichiers FLAC, vous pouvez la trouver sur le site des raretés
  • iDevices ne peut pas gérer les fichiers avec des taux d'échantillonnage supérieurs à 48 000 kHz et des tailles d'échantillons supérieures à 24 bits (au début de 2016). iTunes ne vous laissera pas copier ces fichiers sur votre appareil, vous avertissant que la piste "n'a pas été copiée car la fréquence d'échantillonnage n'est pas prise en charge par" l'iDevice. Appeler qaacavec les options --rate 48000 --bits-per-sample 24corrigera ce problème, mais assurez-vous de n'utiliser ces options que sur les fichiers haute définition réels, car sinon vous allez gonfler tous vos fichiers sans rien gagner!
  • les fichiers ALAC n'auront pas les informations de volume sur lesquelles Apple iTunes et iDevices s'appuient pour leur fonctionnalité de vérification du son (ajuste le volume de lecture du morceau au même niveau). Les informations peuvent être ajoutées aux fichiers à l'aide d' iTunes (semble seulement stocker des informations de volume dans sa bibliothèque), beaTunes (logiciel commercial), iVolume (logiciel commercial) et un certain nombre d'autres outils sur différentes plates-formes
  • ce n'est pas un processus de synchronisation: les commandes ci-dessus exécutées une deuxième fois ajouteront les fichiers FLAC que vous avez ajoutés au répertoire source à votre répertoire de destination mais ne garderont pas deux répertoires de votre musique synchronisés (les fichiers renommés entraîneront fichiers ALAC dupliqués avec des noms différents, les fichiers supprimés ne seront pas supprimés de votre répertoire de destination, si vous utilisez IF NOT EXISTdes modifications de métadonnées car la dernière exécution ne sera pas reflétée dans les fichiers ALAC)

Bienvenue sur Super User! Merci d'avoir publié une première réponse aussi complète. :)
Excellll

1

FFmpeg devrait pouvoir le faire; c'est à vous de trouver les bonnes commandes pour le faire.


Ceci est un ancien article, mais c'est vraiment plus un commentaire qu'une solution. Veuillez envisager d'élargir la réponse. Merci.
fixer1234


1

Il existe plusieurs façons de convertir FLAC en ALAC.

  • Sous Windows, vous pouvez utiliser foobar2000 et le pack encodeur .
  • Sous Windows, Linux et Mac, vous pouvez utiliser PowerShell flac, et ffmpeg.

    $folder = "d:\demo"
    
    # Convert flac to wav
    Get-ChildItem -Recurse "$folder\*.flac" | ForEach-Object {
      & C:\tools\flac.exe -d --force --silent $_.FullName
    }
    
    # Convert wav to alac
    Get-ChildItem -Recurse "$folder\*.wav" | ForEach-Object {
      $filename = [System.IO.Path]::ChangeExtension($_.FullName, ".m4a")
      & C:\tools\ffmpeg.exe -hide_banner -loglevel panic -i $_.FullName -acodec alac -sample_fmt s16p $fileName
    }
    
    # Remove wav and flac file
    Get-ChildItem -Recurse "$folder\*.wav" | Remove-Item
    Get-ChildItem -Recurse "$folder\*.flac" | Remove-Item
    

Consultez mon article de blog pour plus de détails: convertir des fichiers musicaux de FLAC en ALAC


0

MediaMonkey peut également le faire, mais il ne préservera que la balise BPM (je ne suis pas au courant que Song Key soit une balise standardisée dans ces formats).

Remarque: vous devrez acheter le «pack de codecs MediaMonkey» pour l'encodage ALAC.


0

J'utilise FooBar et iTunesEncode pour son convertisseur.

  1. Obtenez iTunesEncode
  2. Allez dans FooBar> Tout sélectionner dans votre liste de lecture FLAC> Clic droit - Convertir
  3. Côté droit> Formats> Personnalisé

    Encode Tool : path to iTunesEncode.exe
    Extension : m4a 
    Parameters : -d -e "Lossless Encoder" -a "%artist%" -l "%album%" -t "%title%" -g "%genre%" -y %date% -n %tracknumber% -i %s -o %d
    Format is: lossless
    next propery : 24
    
    DisplayInfo example :
    "Encoder name" - iTunes
    "Bitrate" - 1000
    "Setting" - Apple Lossless
    
  4. Remplissez d'autres paramètres à convertir> Enregistrer la configuration (facultatif)> Convertir
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.