Come posso convertire la mia raccolta musicale FLAC in Apple Lossless?


13

Ho una collezione musicale di dimensioni ragionevoli che tengo in formato FLAC sul mio laptop Ubuntu. Vorrei iniziare a riprodurre questa musica sul mio Mac e sincronizzarla da lì sul mio iPod. La gente ha suggerito che il modo migliore per farlo sia convertire la mia collezione in ALAC, e ho deciso che è quello che voglio fare.

Prima di immergermi e scrivere script di shell personalizzati che richiamano ffmpegalcuni findcomandi complessi , ho pensato di chiedere un consiglio.

Come posso convertire al meglio la mia raccolta FLAC esistente in ALAC, senza alcuna perdita di qualità audio e preservando tutti i metadati?


Huh. Sono sorpreso. Ho pensato che ci sarebbe stata una scelta ovvia per lo strumento di transcodifica, ma tutti quelli che riesco a trovare sono focalizzati sul video.
RAOF,

Quello che ho finito per fare qui è stato scrivere uno script Python personalizzato che chiamasse metaflac, ffmpeg e AtomicParsley.
jml

Risposte:


21

avconv (o ffmpeg, di cui avconv è un fork) può farlo dalla riga di comando:

avconv -i input.flac -c:a alac output.m4a

Dovrebbe preservare i metadati da solo.

Per eseguire ogni flac in una directory:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Per eseguire ogni flac in modo ricorsivo (nella directory corrente e in tutte le sottodirectory):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Se hai i flac in file ogg o qualcosa del genere, ovviamente cambia ./*.flacin ./*.ogg.

Penso che questo dovrebbe funzionare con avconv / ffmpeg dai repository (dal momento che ALAC è rilasciato sotto la licenza Apache e può essere legalmente distribuito), anche se ho installato la versione di medibuntu.

Se vuoi sbarazzarti dei file originali, puoi metterli rmnel ciclo. Questa versione usa il -nflag per avconv, quindi non sovrascriverà alcun file ALAC già esistente e usando &&invece; significa che se avconv si ferma con un errore, il file FLAC originale non verrà cancellato:

for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done

Si noti che la cancellazione di file con rm è irreversibile (al di fuori del recupero dei dati forensi), quindi fare attenzione ad usarlo.


Sai come sostituire i file flac con quelli alac, invece di fare una copia alac del file flac?
user138784

@utente13 no, avconv / ffmpeg non può farlo, non può sovrascrivere i file che utilizza come input. rmSe lo desideri, puoi utilizzare per rimuovere i file originali.
evilsoup,

Non sono davvero un guru della riga di comando (sono abbastanza nuovo su GNU / Linux), quindi fino ad ora li ho usati per rimuoverli manualmente. (nautilus, organizza i file per tipo, quindi posso semplicemente selezionare tutti i file .flac in quella directory e rimuoverli). Vedrò come funziona questo "rm". :)
user138784

@ user138 Ho modificato la risposta per mostrare un'implementazione con rm- sebbene prenda nota dell'avvertimento, rmè praticamente irreversibile, cancella completamente i file piuttosto che spostarli nel cestino. Un'altra alternativa sarebbe quella di usare il globbing dopo che il ciclo è terminato (quindi puoi verificare che non ci siano stati problemi ... se il comando fallisse per qualsiasi motivo, non vorrai sbarazzarti degli originali): rm -- *.flacrimuoveresti ogni FLAC nella directory di lavoro.
evilsoup,

Grazie per il consiglio! Di solito conservo i file flac originali in un'altra directory, quindi non c'è rischio di perderli.
user138784
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.