Czy pliki audio Apple Lossless (ALAC) można konwertować na pliki audio FLAC bez utraty wierności?
Czy pliki audio Apple Lossless (ALAC) można konwertować na pliki audio FLAC bez utraty wierności?
Odpowiedzi:
Tak, biorąc pod uwagę, że oba są matematycznie bezstratne, konwersja również jest bezstratna.
Powodem tego jest to, że sygnał można zawsze zrekonstruować do oryginalnej postaci, gdy dekodowany jest plik FLAC / ALAC. Są więc równoważne i nie powinieneś tracić żadnej straty podczas transkodowania - nawet przy transkodowaniu wielokrotnym.
Jedyny błąd, jaki mogłem sobie wyobrazić, to błąd arytmetyczny, np. Poprzez ograniczoną precyzję zmiennoprzecinkową w obliczeniach. Nie sądzę, że dotyczy to zarówno FLAC, jak i ALAC.
Jeśli używasz tylko „bezstratnego” kodeka „psychoakustycznie”, nie jest to możliwe. Bezstratny w sensie psychoakustycznym oznaczałby, że nie można odróżnić wersji oryginalnej i skompresowanej, a jednak bardzo się od siebie różnią. MP3 lub MPEG-4 AAC używają do tego różnych technik psychoakustycznych. Dlatego podczas transkodowania oryginalnej wersji nie można odtworzyć, co może spowodować utratę jakości.
Jeśli chcesz przekonwertować ALAC na FLAC, ffmpeg
byłaby to dobra opcja, ponieważ jest bezpłatna i dostępna na prawie każdą platformę.
ffmpeg -i audio.m4a -c:a flac audio.flac
FFmpeg odczyta ALAC bez problemów. W systemach * nix dostępny jest również skrypt o nazwie Konwertuj na FLAC, który ułatwia cały proces. Dzięki Bash możesz po prostu przekonwertować wszystkie pliki w jednym katalogu:
for f in *.m4a; do ffmpeg -i "$f" -c:a flac "${f%.m4a}.flac"; done
Uwaga: Jeśli pojawi się komunikat o ffmpeg
przestarzałości, w rzeczywistości tak nie jest - nadal jest to aktywnie rozwijany program. Jednak opiekunowie pakietów Ubuntu właśnie zdecydowali się przejść do rozwidlenia Libav FFmpeg, a tym samym dostarczyć ci avconv
zamiast ffmpeg
. Wersja ffmpeg
dostępna na Ubuntu jest zatem nieaktualna. Możesz pobrać najnowszą wersję, pobierając zamiast tego kompilację statyczną lub samodzielnie ją kompilując. Czytaj dalej, aby uzyskać więcej informacji: Kto może mi powiedzieć różnicę i związek między ffmpeg, libav i avconv
for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done
Działa to w systemie Linux, ale także na przykład w Git bash w systemie Windows.
*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Aby to zrobić za pomocą aconv, zrób to zamiast tego: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
w systemie Windows w Powershell (przy użyciu ffmpeg) możesz to zrobić, aby przekonwertować alac na flac:
Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }
i odwrotnie, zrób to, aby przekonwertować na alak
Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }