Không dễ dàng chuyển đổi FLAC sang ALAC trên Windows?


10

Tôi đang tự hỏi liệu có ai có một quy trình làm việc sạch sẽ, không đau đớn để chuyển mã các tệp FLAC sang ALAC tương đương của họ không? Nó được coi là một chuyển đổi hoàn hảo một chút, có nghĩa là nó không quá khó, nhưng .... nó là.

Tại sao tôi phải làm điều này? (Trước khi mọi người dùng hệ điều hành ăn thịt tôi) Chủ yếu, bởi vì một ứng dụng âm thanh mà tôi sử dụng (Serato Scratch Live) không hỗ trợ FLAC và mặc dù người dùng thường xuyên sử dụng trong năm năm qua (!), Rất có thể sẽ không cho trong khi. Tuy nhiên, họ đã hack cùng nhau hỗ trợ ALAC

Ngoài ra, có vẻ như việc iTunes phát các tệp FLAC (và chuyển đổi chính xác chúng để sử dụng không gian hiệu quả trên iPod của tôi) là điều không thể.

Điều hấp dẫn duy nhất là tôi muốn duy trì một số thẻ meta kỳ lạ (khóa BPM và bài hát) sẽ hơi đau khi tạo lại. Tôi không có bất cứ điều gì trên Windows hoặc Linux

Cảm ơn

Tom

Câu trả lời:


11

Trong Ubuntu, bạn có thể mở một thiết bị đầu cuối, điều hướng đến thư mục được đề cập và thực hiện vòng lặp lệnh sau:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Sẽ chuyển đổi tất cả .flaccác tệp trong thư mục thành .alaccác tệp, làm như vậy theo cách hoàn hảo.
  • ffmpegkhông được đóng gói với Ubuntu, vì vậy bạn cần cài đặt nó từ repos; tuy nhiên, tôi không thể nói chắc chắn rằng điều này sẽ giữ thông tin thẻ BPM của bạn.

Ngoài ra, có vẻ như việc iTunes phát các tệp FLAC (và chuyển đổi chính xác chúng để sử dụng không gian hiệu quả trên iPod của tôi) là điều không thể.

Có một chương trình gọi là flukeformac có thể cho phép bạn phát .flaccác tệp trong iTunes.
Để chuyển đổi để sử dụng iPod hiệu quả, vòng lệnh sau sẽ thực hiện thủ thuật:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Bạn có thể muốn thay thế --preset fast extremebằng tùy chọn bitrate thấp hơn
    ( nhiều hơn trên các lamecài đặt trước)

1
Một câu trả lời xuất sắc, toàn diện. Cảm ơn bạn
Tom Corelis

Tôi đã thử sử dụng bản dựng tĩnh của ffmpeg trong windows 10, nó có thể chuyển đổi acodec alac nhưng nó không thể chuyển đổi vcodec h264 mặc dù h264 là định dạng được hỗ trợ trongffmpeg --codecs
user1022209

6

Đối với Windows sử dụng PowerShellffmpeg(dựa trên câu trả lời @boehj):

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


4

Đối với những người nghiện dòng lệnh (Windows) ngoài kia:

Tôi đã viết một tập lệnh tự động hóa cho iTunes cho Windows, nhập hàng loạt tất cả các tệp FLAC từ thư mục đã cho và các thư mục con của nó vào iTunes ở định dạng ALAC, giữ nguyên các thông số chính như album, nghệ sĩ và tên bài hát. Nó đòi hỏi flac.exemetaflac.exemột tiện ích trợ giúp nhỏ để chuyển đổi bộ ký tự. Bạn có thể tải xuống gói sẵn sàng sử dụng bao gồm các phụ thuộc đó (xem bên dưới) hoặc rẽ nhánh dự án của tôi trên GitHub.

Để biết toàn bộ câu chuyện, tải xuống nhị phân, giới hạn, v.v., hãy tham khảo bài đăng trên blog của tôi .


2

Trong Windows, bạn có thể mở một dấu nhắc lệnh và chạy các lệnh sau đây để chuyển đổi các tập tin FLAC để ALAC trong cùng thư mục trên một ổ đĩa khác nhau (cách tôi thích để có nó) sử dụng qaac, libFLACvà iTunes:

  1. thay đổi thư mục làm việc hiện tại thành thư mục nguồn chứa các tệp flac của bạn ( s:\musicđược sử dụng ở đây làm ví dụ)

  2. sao chép tất cả các thư mục của bạn vào thư mục đích, bao gồm các tệp bìa album với tên tệp ( folder.(jpg|png|gif)):

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

    Tùy chọn /Ebao gồm các thư mục trống. Nếu bạn không muốn chúng sao chép, hãy sử dụng /Stùy chọn.

  3. sử dụng qaacđể chuyển đổi tất cả các tệp FLAC trong thư mục đó sang các tệp ALAC trên ổ đĩa khác theo cách 'hoàn hảo một chút' và giữ hầu hết các siêu dữ liệu gốc:

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

    Chèn IF NOT EXIST "d:%~pI%~nI.m4a"vào lệnh trên sau DOsẽ bỏ qua các tệp chuyển đổi đã tồn tại trong thư mục đích.

Xin lưu ý rằng

  • tên thư mục trên ổ đĩa nguồn ( s:) và đích ( d:) cần giống nhau (nếu không bạn cần sửa lại các biến trong FORlệnh, qaacsẽ không tạo thư mục cho bạn)
  • bạn cần thay đổi vào thư mục nguồn ( s:\musictrong ví dụ trên) để các lệnh hoạt động
  • thư mục đích ( d:\musictrong ví dụ trên) nên trống để tránh ghi đè tập tin
  • bạn có thể sử dụng SUBSTlệnh để ánh xạ thư mục vào ký tự ổ đĩa nếu bạn muốn tạo các tệp ALAC trên cùng một ổ đĩa
  • bạn sẽ phải chạy ít nhất phiên bản 2.57 qaacvà sử dụng nhị phân phù hợp cho phiên bản windows của mình (32 bit hoặc 64 bit)
  • qaaccần phải có trong PATHbiến Windows của bạn hoặc bạn sẽ phải bao gồm đường dẫn đầy đủ đến nhị phân của nó trong FORlệnh trên
  • qaac cần cài đặt iTunes hoặc QuickTime để hoạt động
  • qaaccần một bản sao phù hợp của libFLACDLL trong thư mục của nó để đọc các tệp FLAC, bạn có thể tìm thấy nó trên trang web rarewares
  • iDevices không thể xử lý các tệp có tốc độ mẫu trên 48.000 kHz và kích thước mẫu trên 24 bit (vào đầu năm 2016). iTunes sẽ không cho phép bạn sao chép các tệp này vào thiết bị của mình, cảnh báo bạn rằng bản nhạc "không được sao chép vì tốc độ mẫu không được" iDevice hỗ trợ. Gọi qaacvới các tùy chọn --rate 48000 --bits-per-sample 24sẽ khắc phục điều này, nhưng hãy đảm bảo chỉ sử dụng các tùy chọn này trên các tệp có độ phân giải cao thực tế, vì nếu không, bạn sẽ làm hỏng tất cả các tệp của mình mà không thu được gì!
  • các tệp ALAC sẽ thiếu thông tin âm lượng mà Apple iTunes và iDevices dựa vào chức năng Kiểm tra âm thanh của chúng (điều chỉnh âm lượng phát lại bài hát theo cùng mức). Thông tin có thể được thêm vào các tệp bằng iTunes (dường như chỉ lưu trữ thông tin về khối lượng trong thư viện của nó), beaTunes (phần mềm thương mại), iVolume (phần mềm thương mại) và một số công cụ khác trên các biểu đồ khác nhau
  • đây không phải là quy trình đồng bộ hóa: các lệnh trên chạy lần thứ hai sẽ thêm các tệp FLAC bạn đã thêm vào thư mục nguồn vào thư mục đích của mình nhưng sẽ không giữ hai thư mục nhạc của bạn được đồng bộ hóa (các tệp được đổi tên sẽ dẫn đến các tệp ALAC trùng lặp với các tên khác nhau, các tệp bị xóa sẽ không bị xóa khỏi thư mục đích của bạn, nếu bạn đang sử dụng IF NOT EXISTcác thay đổi siêu dữ liệu do lần chạy cuối cùng sẽ không được phản ánh trong các tệp ALAC)

Chào mừng bạn đến với Siêu người dùng! Cảm ơn đã gửi một câu trả lời đầu tiên toàn diện. :)
Xuất sắc

1

FFmpeg sẽ có thể làm điều đó; Tùy thuộc vào bạn để tìm các lệnh chính xác để làm như vậy.


Đây là một bài viết cổ xưa, nhưng nó thực sự là một bình luận nhiều hơn là một giải pháp. Hãy xem xét mở rộng câu trả lời. Cảm ơn.
fixer1234


1

Có nhiều cách để chuyển đổi FLAC sang ALAC.

  • Trên Windows, bạn có thể sử dụng foobar2000 và Gói Encoder .
  • Trên Windows, Linux và Mac, bạn có thể sử dụng PowerShell flacffmpeg.

    $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

Kiểm tra bài đăng trên blog của tôi để biết thêm chi tiết: Chuyển đổi tệp nhạc từ FLAC sang ALAC


0

MediaMonkey cũng có thể làm điều này, nhưng nó sẽ chỉ bảo toàn thẻ BPM (Tôi không biết Song Key là thẻ được tiêu chuẩn hóa qua các định dạng này).

lưu ý: bạn sẽ cần mua 'Gói Codec MediaMonkey' để mã hóa ALAC.


0

Tôi đang sử dụng FooBar và iTunesEncode cho trình chuyển đổi của nó.

  1. Được iTunesEncode
  2. Truy cập FooBar> Chọn tất cả trong danh sách phát FLAC của bạn> Nhấp chuột phải - Chuyển đổi
  3. Bên phải> Định dạng> Tùy chỉnh

    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. Điền các tham số khác để chuyển đổi> Lưu cấu hình (tùy chọn)> Chuyển đổi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.