Convertire indolore FLAC in ALAC su Windows?


10

Mi chiedo se qualcuno ha un flusso di lavoro pulito e indolore per la transcodifica senza perdita di file FLAC nel loro equivalente ALAC? Dovrebbe essere una conversione un po 'perfetta, il che significa che non dovrebbe essere molto difficile, ma ... lo è.

Perché dovrei farlo? (Prima che la gente del sistema operativo mi mangiasse vivo) Principalmente, perché un'app audio che utilizzo (Serato Scratch Live) non supporta FLAC e, nonostante il costante stimolo degli utenti negli ultimi cinque (!) Anni, molto probabilmente non lo farà per mentre. Tuttavia, hanno combinato il supporto ALAC

Inoltre, sembrerebbe che far sì che iTunes riproduca i file FLAC (e li converta correttamente per utilizzare lo spazio in modo efficiente sul mio iPod) è praticamente impossibile.

L'unico problema è che mi piacerebbe preservare alcuni metatag bizzarri e insoliti (BPM e chiave della canzone) che sarebbe un po 'doloroso rigenerare. Non ho niente su Windows o Linux

Grazie

Tom

Risposte:


11

In Ubuntu è possibile aprire un terminale, accedere alla directory in questione ed eseguire il seguente ciclo di comandi:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Converte tutti i .flacfile nella directory in .alacfile, in modo perfettamente perfetto.
  • ffmpegnon viene fornito con Ubuntu, quindi è necessario installarlo dai repository; tuttavia, non posso dire con certezza che ciò manterrà le informazioni del tag BPM.

Inoltre, sembrerebbe che far sì che iTunes riproduca i file FLAC (e li converta correttamente per utilizzare lo spazio in modo efficiente sul mio iPod) è praticamente impossibile.

Esiste un programma chiamato flukeformac che potrebbe consentire di riprodurre .flacfile in iTunes.
Per quanto riguarda la conversione per un uso efficiente dell'iPod, il seguente ciclo di comandi farà il trucco:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • È possibile che si desideri sostituire --preset fast extremecon un'opzione di bitrate inferiore
    ( ulteriori informazioni sui lamepreset)

1
Una risposta eccellente e completa. Grazie
Tom Corelis il

Ho provato a usare la build statica di ffmpeg in Windows 10, può convertire acodec alac ma non può convertire vcodec h264 sebbene h264 sia un formato supportato inffmpeg --codecs
user1022209

6

Per Windows utilizzando PowerShelle ffmpeg(basato sulla risposta di @boehj):

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


4

Ai tossicodipendenti da riga di comando (Windows) là fuori:

Ho scritto uno script di automazione per iTunes per Windows che importa in batch tutti i file FLAC dalla cartella data e dalle sue sottocartelle in iTunes in formato ALAC, preservando la metainformazione chiave come album, artista e nome del brano. Richiede flac.exee metaflac.exeed una piccola utility di supporto per la conversione charset. Puoi scaricare un pacchetto pronto per l'uso che include tali dipendenze (vedi sotto) o fork il mio progetto su GitHub.

Per la storia completa, download binario, limitazioni, ecc., Fare riferimento al mio post sul blog .


2

In Windows è possibile aprire un prompt dei comandi ed eseguire i comandi seguenti per convertire i file FLAC a ALAC nella stessa directory in un'unità diversa (il modo in cui preferiscono avere) utilizzando qaac, libFLACe iTunes:

  1. cambia la directory di lavoro corrente nella directory di origine che contiene i tuoi file flac ( s:\musicè usato qui come esempio)

  2. copia tutte le tue cartelle nella directory di destinazione, inclusi i file di copertina dell'album con i nomi dei file ( folder.(jpg|png|gif)):

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

    L'opzione /Einclude le directory vuote. Se non li vuoi copiare, usa l' /Sopzione.

  3. usare qaacper convertire tutti i file FLAC in quella directory in file ALAC sull'altra unità in un modo 'un po' perfetto 'e mantenendo la maggior parte dei metadati originali:

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

    L'inserimento IF NOT EXIST "d:%~pI%~nI.m4a"nel comando precedente dopo DOsalterà la conversione dei file già esistenti nella directory di destinazione.

Si prega di notare che

  • i nomi delle directory sull'unità source ( s:) e destination ( d:) devono essere uguali (altrimenti devi armeggiare con le variabili nel FORcomando, qaacnon creerai le directory per te)
  • è necessario passare alla directory di origine ( s:\musicnell'esempio sopra) affinché i comandi funzionino
  • la directory di destinazione ( d:\musicnell'esempio sopra) dovrebbe essere vuota per evitare di sovrascrivere i file
  • è possibile utilizzare il SUBSTcomando per mappare una directory su una lettera di unità se si desidera creare i file ALAC sulla stessa unità
  • dovrai eseguire almeno la versione 2.57 di qaace utilizzare il binario appropriato per la tua versione di Windows (32 bit o 64 bit)
  • qaacdeve essere nella tua PATHvariabile di Windows o dovrai includere il percorso completo del suo binario nel FORcomando sopra
  • qaac ha bisogno di iTunes o QuickTime per funzionare
  • qaacè necessaria una copia corrispondente della libFLACDLL nella sua directory per leggere i file FLAC, è possibile trovarlo sul sito rarewares
  • iDevices non è in grado di gestire file con frequenze di campionamento superiori a 48.000 kHz e dimensioni di campionamento superiori a 24 bit (all'inizio del 2016). iTunes non ti consente di copiare questi file sul tuo dispositivo, avvertendoti che la traccia "non è stata copiata perché la frequenza di campionamento non è supportata da" iDevice. Chiamare qaaccon le opzioni --rate 48000 --bits-per-sample 24risolverà questo problema, ma assicurati di usare queste opzioni solo sui file ad alta definizione reali, perché altrimenti gonferai tutti i tuoi file senza guadagnare nulla!
  • ai file ALAC mancheranno le informazioni sul volume su cui fanno affidamento Apple iTunes e iDevices per la funzionalità Sound Check (regola il volume di riproduzione dei brani allo stesso livello). Le informazioni possono essere aggiunte ai file usando iTunes (sembra solo memorizzare le informazioni sul volume nella sua libreria), beaTunes (software commerciale), iVolume (software commerciale) e una serie di altri strumenti su piattaforme diverse
  • questo non è un flusso di lavoro di sincronizzazione: i comandi precedenti eseguiti una seconda volta aggiungeranno i file FLAC aggiunti alla directory di origine nella directory di destinazione ma non manterranno sincronizzate due directory della musica (i file rinominati comporteranno file ALAC duplicati con nomi diversi, i file eliminati non verranno eliminati dalla directory di destinazione, se si utilizzano IF NOT EXISTle modifiche ai metadati poiché l'ultima esecuzione non si rifletterà nei file ALAC)

Benvenuto in Super User! Grazie per aver pubblicato una prima risposta così completa. :)
Eccellente il

1

FFmpeg dovrebbe essere in grado di farlo; sta a te trovare i comandi corretti per farlo.


Questo è un post antico, ma è davvero più un commento che una soluzione. Ti preghiamo di considerare di espandere la risposta. Grazie.
fixer1234


1

Esistono diversi modi per convertire FLAC in ALAC.

  • Su Windows, puoi usare foobar2000 e Encoder Pack .
  • Su Windows, Linux e Mac, è possibile utilizzare PowerShell flace 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

Controlla il mio post sul blog per maggiori dettagli: Converti i file musicali da FLAC a ALAC


0

Anche MediaMonkey può farlo, ma conserverà solo il tag BPM (non sono a conoscenza del fatto che Song Key sia un tag standardizzato in questi formati).

nota: dovrai acquistare il 'MediaMonkey Codec Pack' per la codifica ALAC.


0

Sto usando FooBar e iTunesEncode per il suo convertitore.

  1. Ottieni iTunesEncode
  2. Vai su FooBar> Seleziona tutto nella playlist FLAC> Fai clic con il pulsante destro del mouse - Converti
  3. Lato destro> Formati> Personalizzato

    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. Riempi altri parametri per convertire> Salva la configurazione (opzionale)> Converti
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.