L'audio Apple Lossless può essere convertito in FLAC senza perdita di fedeltà?


19

I file audio Apple Lossless (ALAC) possono essere convertiti in file audio FLAC senza perdita di fedeltà?


2
risposta breve 'sì' (come ha detto slhck). domanda è, stai cercando uno strumento con cui fare questo, o chiedendo se è possibile convertire un formato senza perdita, senza perdita di dati in un altro formato senza perdita?
Journeyman Geek

Risposte:


37

Sì, dato che entrambi sono matematicamente senza perdita, anche la conversione è senza perdita.

La ragione di ciò è che il segnale può sempre essere ricostruito nella sua forma originale quando viene decodificato un file FLAC / ALAC. Pertanto, sono equivalenti e non dovresti riscontrare alcuna perdita durante la transcodifica, anche durante la transcodifica più volte.

L'unico errore che potrei immaginare sarebbe aritmetico, ad esempio attraverso una precisione limitata in virgola mobile nei calcoli. Non penso che ciò si applichi né a FLAC né a ALAC.

Nel caso in cui utilizzi solo un codec "psicoacusticamente" senza perdita di dati, ciò non è possibile. Perdere in senso psicoacustico significherebbe che non puoi distinguere la versione originale da quella compressa, ma sono molto diverse l'una dall'altra. MP3 o MPEG-4 AAC utilizzano varie tecniche psicoacustiche per raggiungere questo obiettivo. Pertanto, durante la transcodifica, la versione originale non può essere ricostruita e si verificherà una perdita di qualità.


Nel caso in cui desideri convertire ALAC in FLAC, ffmpegsarebbe una buona opzione, poiché è gratuita e disponibile per quasi tutte le piattaforme.

ffmpeg -i audio.m4a -c:a flac audio.flac

FFmpeg leggerà ALAC senza problemi. Per i sistemi * nix, esiste anche uno script chiamato Converti in FLAC che semplifica l'intero processo. Con Bash puoi semplicemente convertire tutti i file in una singola directory:

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

Nota: se ricevi un messaggio ffmpegsull'essere deprecato, in realtà non è così, è comunque un programma sviluppato attivamente. Tuttavia, i manutentori dei pacchetti di Ubuntu hanno appena deciso di passare al fork Libav di FFmpeg e quindi fornirti avconvinvece di ffmpeg. La versione ffmpeg disponibile su Ubuntu è quindi obsoleta. Puoi ottenerne uno recente scaricando invece una build statica o compilandola da solo. Continua a leggere per ulteriori informazioni: chi può dirmi la differenza e la relazione tra ffmpeg, libav e avconv


2
Sulla base di superuser.com/a/277358/45914 , è possibile effettuare le seguenti operazioni per convertire un'intera directory: for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done funziona su Linux, ma anche in un Git bash su Windows, ad esempio.
Ruud

1
La conversione usando ffmpeg, come ha detto @RuudvA, funziona ma mi dà un messaggio che dice: *** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. Per fare questo usando aconv, fai questo invece: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
Duncan Lock

XLD è un altro buono per OSX.
Arran Cudbard-Bell,

3

Per Windows CMD puoi farlo.

@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"

(Script batch)

(Questo farà ricorsione (ogni cartella e sotto da dove viene eseguita))


1

Se hai un Mac (dato che hai i file ALAC), puoi anche usare il software open source Max come bel frontend per fare la conversione da e verso ALAC / FLAC o molti altri formati.


2
Un altro bello è XLD.
Nathaniel,

1

per Windows in Powershell (usando ffmpeg) puoi farlo per convertire alac in flac:

Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }

e viceversa fai questo per convertire in alac

Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }

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.