Bezproblemowo przekonwertować FLAC na ALAC w systemie Windows?

10

Zastanawiam się, czy ktoś ma czysty, bezbolesny przepływ pracy w celu bezstratnego transkodowania plików FLAC do ich odpowiednika ALAC? To ma być nieco doskonała konwersja, co oznacza, że ​​nie powinno być bardzo trudne, ale ... tak jest.

Dlaczego miałbym to zrobić? (Zanim ludzie z systemu operacyjnego zjedzą mnie żywcem) Głównie dlatego, że aplikacja audio, której używam (Serato Scratch Live) nie obsługuje FLAC, i pomimo ciągłego szturchania użytkowników przez ostatnie pięć (!) Lat, najprawdopodobniej nie będzie podczas. Jednak zhakowali razem wsparcie ALAC

Wydawałoby się również, że zmusienie iTunes do odtwarzania plików FLAC (i odpowiedniego przekształcenia ich w dół w celu efektywnego wykorzystania miejsca na moim iPodzie) jest prawie niemożliwe.

Jedynym haczykiem jest to, że chciałbym zachować niektóre dziwne, niecodzienne metatagi (BPM i klawisz piosenki), których regeneracja byłaby nieco bolesna. Nie podoba mi się nic w systemie Windows lub Linux

Dzięki

Tomek

Tom Corelis
źródło

Odpowiedzi:

11

W Ubuntu możesz otworzyć terminal, przejść do odpowiedniego katalogu i wykonać następującą pętlę poleceń:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Konwertuje wszystkie .flacpliki w katalogu na .alacpliki, robiąc to w nieco perfekcyjny sposób.
  • ffmpegnie jest dostarczany z Ubuntu, więc musisz zainstalować go z repozytoriów; nie mogę jednak stwierdzić z całą pewnością, że spowoduje to zachowanie informacji o tagach BPM.

Wydawałoby się również, że zmusienie iTunes do odtwarzania plików FLAC (i odpowiedniego przekształcenia ich w dół w celu efektywnego wykorzystania miejsca na moim iPodzie) jest prawie niemożliwe.

Istnieje program o nazwie flukeformac, który może umożliwiać odtwarzanie .flacplików w iTunes.
Jeśli chodzi o konwersję do wydajnego korzystania z iPoda, załatwi to następująca pętla poleceń:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Możesz zastąpić --preset fast extremeopcję mniejszej przepływności
    ( więcej na temat lameustawień wstępnych)
boehj
źródło
1
Doskonała, kompleksowa odpowiedź. Dziękuję
Tom Corelis
Próbowałem użyć statycznej wersji ffmpeg w systemie Windows 10, może on konwertować acodec alac, ale nie może przekonwertować vcodec h264, chociaż h264 jest obsługiwanym formatemffmpeg --codecs
użytkownik1022209
6

W systemie Windows używającym PowerShelli ffmpeg(na podstawie odpowiedzi @boehj):

Ls -Recurse -Include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}
Paulius
źródło
4

Do uzależnionych z wiersza poleceń (Windows):

Napisałem skrypt automatyzacji dla iTunes dla Windows, który wsadowo importuje wszystkie pliki FLAC z danego folderu i jego podfolderów do iTunes w formacie ALAC, zachowując kluczowe metainformacje, takie jak album, wykonawca i nazwa utworu. Wymaga flac.exei metaflac.exemałego narzędzia pomocniczego do konwersji zestawu znaków. Możesz pobrać gotowy do użycia pakiet, który zawiera te zależności (patrz poniżej) lub rozwidlić mój projekt na GitHub.

Pełna historia, pobieranie plików binarnych, ograniczenia itp. Znajdują się na moim blogu .

Dmitrij Leskow
źródło
2

W systemie Windows można otworzyć wiersz polecenia i uruchom następujące polecenia, aby konwertować pliki FLAC do ALAC w tym samym katalogu na innym dysku (sposób wolę go mieć) za pomocą qaac, libFLACi iTunes:

  1. zmień bieżący katalog roboczy na katalog źródłowy zawierający pliki flac ( s:\musicjest tutaj użyty jako przykład)

  2. skopiuj wszystkie foldery do katalogu docelowego, w tym pliki okładki albumu z nazwami plików ( folder.(jpg|png|gif)):

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

    Opcja /Eobejmuje puste katalogi. Jeśli nie chcesz ich kopiować, skorzystaj z /Sopcji.

  3. użyj qaacdo przekonwertowania wszystkich plików FLAC w tym katalogu na pliki ALAC na drugim dysku w „nieco doskonały” sposób i zachowując większość oryginalnych metadanych:

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

    Wstawienie IF NOT EXIST "d:%~pI%~nI.m4a"do powyższej komendy po DOspowoduje pominięcie konwersji plików, które już istnieją w katalogu docelowym.

Proszę to zanotować

  • nazwy katalogów na źródłowym ( s:) i docelowym ( d:) dysku muszą być takie same (w przeciwnym razie musisz majstrować przy zmiennych w FORpoleceniu, qaacnie utworzy katalogów dla ciebie)
  • musisz przejść do katalogu źródłowego ( s:\musicw powyższym przykładzie), aby polecenia działały
  • katalog docelowy ( d:\musicw powyższym przykładzie) powinien być pusty, aby uniknąć nadpisywania plików
  • możesz użyć SUBSTpolecenia, aby zamapować katalog na literę dysku, jeśli chcesz utworzyć pliki ALAC na tym samym dysku
  • musisz uruchomić przynajmniej wersję 2.57 qaaci użyć odpowiedniego pliku binarnego dla wersji systemu Windows (32-bitowego lub 64-bitowego)
  • qaacmusi znajdować się w PATHzmiennej Windows lub w FORpowyższym poleceniu musisz podać pełną ścieżkę do pliku binarnego
  • qaac wymaga do działania iTunes lub QuickTime
  • qaacpotrzebuje kopia dopasowanie do libFLACDLL w swoim katalogu do odczytu plików FLAC, można go znaleźć na rarewares miejscu
  • iDevices nie obsługuje plików o częstotliwości próbkowania powyżej 48 000 kHz i wielkości próbek powyżej 24 bitów (na początku 2016 r.). iTunes nie pozwala na skopiowanie tych plików na urządzenie, ostrzegając, że utwór „nie został skopiowany, ponieważ częstotliwość próbkowania nie jest obsługiwana przez„ iDevice. Wywołanie qaacz opcjami --rate 48000 --bits-per-sample 24naprawi to, ale upewnij się, że korzystasz z tych opcji tylko w rzeczywistych plikach wysokiej rozdzielczości, ponieważ w przeciwnym razie nadymasz wszystkie swoje pliki, nie zyskując nic!
  • w plikach ALAC brakuje informacji o głośności, na których polegają Apple iTunes i iDevices w zakresie funkcji kontroli dźwięku (dostosowuje głośność odtwarzania utworu do tego samego poziomu). Informacje można dodawać do plików za pomocą iTunes (wydaje się, że przechowują informacje o objętości w swojej bibliotece), beaTunes (oprogramowanie komercyjne), iVolume (oprogramowanie komercyjne) i wiele innych narzędzi na różnych platformach
  • nie jest to przepływ pracy synchronizacji: powyższe polecenia uruchomione po raz drugi dodają pliki FLAC dodane do katalogu źródłowego do katalogu docelowego, ale nie utrzymają synchronizacji dwóch katalogów z muzyką (pliki o zmienionej nazwie spowodują zduplikowane pliki ALAC o różnych nazwach, usunięte pliki nie zostaną usunięte z katalogu docelowego, jeśli używasz IF NOT EXISTzmian metadanych, ponieważ ostatnie uruchomienie nie zostanie odzwierciedlone w plikach ALAC)
Oliver
źródło
Witamy w Super User! Dziękujemy za opublikowanie tak kompleksowej pierwszej odpowiedzi. :)
Excellll,
1

FFmpeg powinien być w stanie to zrobić; od Ciebie zależy znalezienie odpowiednich poleceń.

Cześć71
źródło
To jest starożytny post, ale tak naprawdę jest bardziej komentarzem niż rozwiązaniem. Rozważ rozszerzenie odpowiedzi. Dzięki.
fixer1234
1

Istnieje wiele sposobów konwersji FLAC na ALAC.

  • W systemie Windows można użyć foobar2000 i pakietu enkoderów .
  • W systemach Windows, Linux i Mac możesz używać programu PowerShell flaci 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

Sprawdź mój post na blogu, aby uzyskać więcej informacji: Konwertuj pliki muzyczne z FLAC na ALAC

meziantou
źródło
0

MediaMonkey też może to zrobić, ale zachowa tylko tag BPM (nie wiem, czy Song Key jest znormalizowanym tagiem dla tych formatów).

Uwaga: musisz kupić „MediaMonkey Codec Pack” do kodowania ALAC.

Rusty Monkey
źródło
0

Używam FooBar i iTunesEncode do jego konwertera.

  1. Uzyskaj iTunesEncode
  2. Przejdź do FooBar> Zaznacz wszystko na liście odtwarzania FLAC> Kliknij prawym przyciskiem myszy - Konwertuj
  3. Prawa strona> Formaty> Niestandardowe

    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. Podaj inne parametry do konwersji> Zapisz konfigurację (opcjonalnie)> Konwertuj
cnd
źródło