Tanpa kesulitan mengkonversi FLAC ke ALAC di Windows?


10

Saya bertanya-tanya apakah ada yang punya alur kerja bersih dan tidak menyakitkan untuk transcoding file FLAC tanpa kehilangan ke ALAC yang setara? Seharusnya konversi yang agak sempurna, artinya seharusnya tidak terlalu sulit, tapi .... itu.

Mengapa saya melakukan ini? (Sebelum orang-orang OS memakanku hidup-hidup) Terutama, karena aplikasi audio yang saya gunakan (Serato Scratch Live) tidak mendukung FLAC, dan meskipun dorongan terus-menerus dari pengguna selama lima tahun terakhir (!), Kemungkinan besar tidak akan selama satu sementara. Mereka, bagaimanapun, meretas dukungan ALAC bersama

Selain itu, sepertinya iTunes untuk memutar file FLAC (dan dengan benar menurunkannya untuk menggunakan ruang secara efisien di iPod saya) sangat tidak mungkin.

Satu-satunya tangkapan adalah saya ingin menyimpan beberapa tag meta aneh (BPM dan kunci lagu) yang agak menyakitkan untuk dibuat kembali. Saya kecewa dengan apa pun di Windows atau Linux

Terima kasih

Tom

Jawaban:


11

Di Ubuntu, Anda dapat membuka terminal, bernavigasi ke direktori yang dimaksud, dan melakukan loop perintah berikut:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done
  • Akan mengkonversi semua .flacfile dalam direktori ke .alacfile, dengan cara yang sedikit sempurna.
  • ffmpegtidak dikemas dengan Ubuntu, jadi Anda harus menginstalnya dari repo; namun, saya tidak dapat mengatakan dengan pasti bahwa ini akan menjaga informasi tag BPM Anda.

Selain itu, sepertinya iTunes untuk memutar file FLAC (dan dengan benar menurunkannya untuk menggunakan ruang secara efisien di iPod saya) sangat tidak mungkin.

Ada sebuah program bernama flukeformac yang memungkinkan Anda memutar .flacfile di iTunes.
Mengenai konversi untuk penggunaan iPod yang efisien, loop perintah berikut akan melakukan trik:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done`
  • Anda mungkin ingin mengganti --preset fast extremedengan opsi bitrate lebih rendah
    ( lebih banyak tentang lamepreset)

1
Jawaban yang sangat bagus dan komprehensif. Terima kasih
Tom Corelis

Saya mencoba menggunakan build statis ffmpeg di windows 10, ia dapat mengonversi acodec alac tetapi tidak dapat mengonversi vcodec h264 walaupun h264 adalah format yang didukung diffmpeg --codecs
user1022209

6

Untuk Windows menggunakan PowerShelldan ffmpeg(berdasarkan jawaban @boehj):

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


4

Untuk pecandu baris perintah (Windows) di luar sana:

Saya telah menulis skrip otomatisasi untuk iTunes untuk Windows yang secara batch mengimpor semua file FLAC dari folder yang diberikan dan subfoldernya ke iTunes dalam format ALAC, mempertahankan metainformation kunci seperti album, artis dan nama lagu. Membutuhkan flac.exedan metaflac.exedan utilitas pembantu kecil untuk konversi charset. Anda dapat mengunduh paket siap-pakai yang mencakup dependensi tersebut (lihat di bawah) atau bercabang proyek saya di GitHub.

Untuk cerita lengkap, unduhan biner, batasan, dll., Lihat posting blog saya .


2

Di Windows Anda dapat membuka prompt perintah dan menjalankan perintah berikut untuk mengonversi file FLAC ke ALAC di direktori yang sama pada drive yang berbeda (cara saya lebih suka memilikinya) menggunakan qaac, libFLACdan iTunes:

  1. ubah direktori kerja saat ini ke direktori sumber yang berisi file flac Anda ( s:\musicdigunakan di sini sebagai contoh)

  2. salin semua folder Anda ke direktori tujuan, termasuk file sampul depan album dengan nama file ( folder.(jpg|png|gif)):

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

    Opsi ini /Etermasuk direktori kosong. Jika Anda tidak ingin mereka disalin gunakan /Sopsi.

  3. gunakan qaacuntuk mengonversi semua file FLAC di direktori itu ke file ALAC di drive lain dengan cara yang 'sedikit sempurna' dan menjaga sebagian besar metadata asli:

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

    Menyisipkan IF NOT EXIST "d:%~pI%~nI.m4a"ke dalam perintah di atas setelah DOakan melewati konversi file yang sudah ada di direktori tujuan.

Harap dicatat bahwa

  • nama direktori pada drive sumber ( s:) dan tujuan ( d:) harus sama (jika tidak, Anda perlu mengutak-atik variabel dalam FORperintah, qaactidak akan membuat direktori untuk Anda)
  • Anda perlu mengubah ke direktori sumber ( s:\musicdalam contoh di atas) agar perintah dapat berfungsi
  • direktori tujuan ( d:\musicdalam contoh di atas) harus kosong untuk menghindari menimpa file
  • Anda dapat menggunakan SUBSTperintah untuk memetakan direktori ke huruf drive jika Anda ingin membuat file ALAC pada drive yang sama
  • Anda harus menjalankan setidaknya versi 2.57 qaacdan menggunakan biner yang sesuai untuk versi windows Anda (32bit atau 64bit)
  • qaacharus dalam PATHvariabel Windows Anda atau Anda harus memasukkan path lengkap ke binernya dalam FORperintah di atas
  • qaac perlu iTunes atau QuickTime diinstal untuk berfungsi
  • qaacmembutuhkan salinan libFLACDLL yang sesuai dalam direktori untuk membaca file FLAC, Anda dapat menemukannya di situs rarewares
  • iDevices tidak dapat menangani file dengan kecepatan sampel di atas 48.000 kHz dan ukuran sampel di atas 24 bit (pada awal 2016). iTunes tidak akan membiarkan Anda menyalin file-file ini ke perangkat Anda, memperingatkan Anda bahwa trek "tidak disalin karena laju sampel tidak didukung oleh" iDevice. Memanggil qaacdengan opsi --rate 48000 --bits-per-sample 24akan memperbaiki ini, tetapi pastikan untuk hanya menggunakan opsi ini pada file definisi tinggi yang sebenarnya, karena jika tidak Anda akan mengasapi semua file Anda tanpa mendapatkan apa pun!
  • file ALAC akan kehilangan informasi volume yang diandalkan oleh Apple iTunes dan iDevices untuk fungsi Pemeriksaan Suara (menyesuaikan volume pemutaran lagu ke level yang sama). Informasi dapat ditambahkan ke file menggunakan iTunes (sepertinya hanya menyimpan informasi volume di perpustakaan itu), beaTunes (perangkat lunak komersial), iVolume (perangkat lunak komersial) dan sejumlah alat lain pada berbagai bentuk plattform
  • ini bukan alur kerja sinkronisasi: perintah di atas berjalan kedua kali akan menambahkan file FLAC yang telah Anda tambahkan ke direktori sumber ke direktori tujuan Anda tetapi tidak akan menyimpan dua direktori musik Anda dalam sinkronisasi (file yang diubah namanya akan menghasilkan file ALAC duplikat dengan nama yang berbeda, file yang dihapus tidak akan dihapus dari direktori tujuan Anda, jika Anda menggunakan IF NOT EXISTmetadata-perubahan karena proses terakhir tidak akan tercermin dalam file ALAC)

Selamat Datang di Pengguna Super! Terima kasih telah memposting jawaban pertama yang begitu komprehensif. :)
Excellll

1

FFmpeg harus dapat melakukannya; Terserah Anda untuk menemukan perintah yang benar untuk melakukannya.


Ini adalah posting kuno, tetapi sebenarnya lebih banyak komentar daripada solusi. Silakan pertimbangkan memperluas jawabannya. Terima kasih.
fixer1234


1

Ada beberapa cara untuk mengkonversi FLAC ke ALAC.

  • Pada Windows, Anda dapat menggunakan foobar2000 dan Paket Encoder .
  • Di Windows, Linux, dan Mac, Anda bisa menggunakan PowerShell flac,, dan 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

Lihat posting blog saya untuk lebih jelasnya: Konversi file musik dari FLAC ke ALAC


0

MediaMonkey dapat melakukan ini juga, tetapi itu hanya akan mempertahankan tag BPM (Saya tidak menyadari Song Key menjadi tag standar di seluruh format ini).

Catatan: Anda harus membeli 'Paket Codec MediaMonkey' untuk penyandian ALAC.


0

Saya menggunakan FooBar dan iTunesEncode untuk konverternya.

  1. Dapatkan iTunesEncode
  2. Pergi ke FooBar> Pilih semua dalam daftar putar FLAC Anda> Klik kanan - Konversi
  3. Sisi kanan> Format> Kustom

    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. Isi parameter lain untuk dikonversi> Simpan konfigurasi (opsional)> Konversi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.