FLAC unter Windows schmerzlos in ALAC konvertieren?

10

Ich frage mich, ob jemand einen sauberen, schmerzlosen Workflow für die verlustfreie Transcodierung von FLAC-Dateien in das entsprechende ALAC hat. Es soll eine etwas perfekte Konvertierung sein, was bedeutet, dass es nicht sehr schwer sein sollte, aber ... es ist.

Warum sollte ich das tun? (Bevor die Leute vom Betriebssystem mich lebendig essen) Hauptsächlich, weil eine von mir verwendete Audio-App (Serato Scratch Live) FLAC nicht unterstützt und trotz des ständigen Anstoßes von Benutzern in den letzten fünf (!) Jahren höchstwahrscheinlich nicht für eine während. Sie haben jedoch die ALAC-Unterstützung zusammen gehackt

Außerdem scheint es so gut wie unmöglich zu sein, iTunes dazu zu bringen, FLAC-Dateien abzuspielen (und sie ordnungsgemäß herunterkonvertieren, um den Speicherplatz auf meinem iPod effizient zu nutzen).

Der einzige Haken ist, dass ich einige seltsame, ungewöhnliche Meta-Tags (BPM und Song-Key) beibehalten möchte, deren Regeneration etwas schmerzhaft wäre. Ich habe Probleme mit Windows oder Linux

Vielen Dank

Tom

Tom Corelis
quelle

Antworten:

10

In Ubuntu können Sie ein Terminal öffnen, zu dem betreffenden Verzeichnis navigieren und die folgende Befehlsschleife ausführen:

for f in *.flac; do ffmpeg -i "$f" -acodec alac "${f%.flac}.m4a"; done

Dadurch werden alle .flac-Dateien in diesem Verzeichnis in .alac-Dateien konvertiert, und dies auf eine "etwas perfekte" Weise.

ffmpeg wird nicht mit Ubuntu geliefert, daher müssen Sie das von den Repos installieren.

Ich kann jedoch nicht sicher sagen, dass dadurch Ihre BPM-Tag-Informationen erhalten bleiben.

Außerdem scheint es so gut wie unmöglich zu sein, iTunes dazu zu bringen, FLAC-Dateien abzuspielen (und sie ordnungsgemäß herunterkonvertieren, um den Speicherplatz auf meinem iPod effizient zu nutzen).

Es gibt ein Programm namens flukeformac , mit dem Sie möglicherweise .flac-Dateien in iTunes abspielen können.

In Bezug auf die Konvertierung für eine effiziente iPod-Nutzung reicht die folgende Befehlsschleife aus:

for file in *.flac; do $(flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3"); done

Hier möchten Sie möglicherweise die --preset fast extremeOption durch eine andere Option mit niedrigerer Bitrate ersetzen . Mehr zu lamePresets finden Sie hier .

boehj
quelle
1
Eine ausgezeichnete, umfassende Antwort. Vielen Dank
Tom Corelis
Ich habe versucht, den statischen Build von ffmpeg in Windows 10 zu verwenden. Er kann acodec alac konvertieren, aber er kann vcodec h264 nicht konvertieren, obwohl h264 ein unterstütztes Format inffmpeg --codecs
user1022209
6

Basierend auf der Antwort von boehj, nur für Windows mit PowerShellund ffmpeg:

ls -recurse -include *.flac | %{C:\path_to_ffmpeg\ffmpeg.exe -i $_.FullName -acodec alac ($_.DirectoryName+"\\"+$_.BaseName+'.m4a')}
Paulius
quelle
4

An die (Windows-) Befehlszeilensüchtigen da draußen:

Ich habe ein Automatisierungsskript für iTunes für Windows geschrieben, das alle FLAC-Dateien aus dem angegebenen Ordner und seinen Unterordnern im ALAC-Format stapelweise in iTunes importiert und dabei die wichtigsten Metainformationen wie Album, Interpreten und Songnamen beibehält. Es erfordert flac.exeund metaflac.exeund ein kleines Hilfsprogramm für die Zeichensatzkonvertierung. Sie können eine ready-to-use - Paket herunterladen , die diese Abhängigkeiten (siehe unten) oder enthält Gabel mein Projekt auf GitHub.

Die vollständige Geschichte, den binären Download, Einschränkungen usw. finden Sie in meinem Blogbeitrag .

Dmitry Leskov
quelle
2

In Windows können Sie eine Eingabeaufforderung öffnen und die folgenden Befehle ausführen , um die FLAC - Dateien zu ALAC im selben Verzeichnis auf einem anderen Laufwerk (so , wie ich es zu bevorzugen) konvertieren verwenden qaac, libFLACund iTunes:

  1. Ändern Sie das aktuelle Arbeitsverzeichnis in das Quellverzeichnis, das Ihre flac-Dateien enthält ( s:\musicwird hier als Beispiel verwendet).

  2. Kopieren Sie alle Ihre Ordner in das Zielverzeichnis, einschließlich der Dateien auf der Titelseite des Albums mit den Dateinamen ( folder.(jpg|png|gif)):

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

    Die Option /Eenthält die leeren Verzeichnisse. Wenn Sie nicht möchten, dass sie kopiert werden, verwenden Sie die /SOption.

  3. Verwenden Sie qaacdiese Option, um alle FLAC-Dateien in diesem Verzeichnis auf ein bisschen perfekte Weise in ALAC-Dateien auf dem anderen Laufwerk zu konvertieren und die meisten ursprünglichen Metadaten beizubehalten:

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

    Durch Einfügen IF NOT EXIST "d:%~pI%~nI.m4a"in den obigen Befehl nach DOwird das Konvertieren von Dateien übersprungen, die bereits im Zielverzeichnis vorhanden sind.

Bitte beachte, dass

  • Die Verzeichnisnamen auf dem Quell- ( s:) und dem Ziellaufwerk ( d:) müssen identisch sein (andernfalls müssen Sie an den Variablen im FORBefehl basteln , qaacum die Verzeichnisse nicht für Sie zu erstellen).
  • Sie müssen in das Quellverzeichnis ( s:\musicim obigen Beispiel) wechseln, damit die Befehle funktionieren
  • Das Zielverzeichnis ( d:\musicim obigen Beispiel) sollte leer sein, um ein Überschreiben von Dateien zu vermeiden
  • Mit dem SUBSTBefehl können Sie ein Verzeichnis einem Laufwerksbuchstaben zuordnen, wenn Sie die ALAC-Dateien auf demselben Laufwerk erstellen möchten
  • Sie müssen mindestens Version 2.57 von ausführen qaacund die entsprechende Binärdatei für Ihre Windows-Version verwenden (32 Bit oder 64 Bit).
  • qaacmuss sich in Ihrer Windows- PATHVariablen befinden, oder Sie müssen den vollständigen Pfad zu der Binärdatei in den FORobigen Befehl aufnehmen
  • qaac muss iTunes oder QuickTime installiert sein, um zu funktionieren
  • qaacbenötigt eine passende Kopie der libFLACDLL in ihrem Verzeichnis, um FLAC-Dateien lesen zu können. Sie finden sie auf der Rarewares- Site
  • iDevices kann keine Dateien mit Abtastraten über 48.000 kHz und Abtastgrößen über 24 Bit verarbeiten (Anfang 2016). iTunes lässt Sie diese Dateien nicht auf Ihr Gerät kopieren und warnt Sie, dass der Titel "nicht kopiert wurde, da die Abtastrate vom" iDevice "nicht unterstützt wird. Wenn Sie qaacmit den Optionen --rate 48000 --bits-per-sample 24aufrufen, wird dies behoben. Verwenden Sie diese Optionen jedoch nur für die eigentlichen HD-Dateien, da Sie sonst alle Ihre Dateien aufblähen, ohne etwas zu gewinnen!
  • In den ALAC-Dateien fehlen die Lautstärkeinformationen, auf die sich Apple iTunes und iDevices für ihre Sound Check-Funktionalität verlassen (passt die Lautstärke der Song-Wiedergabe auf den gleichen Wert an). Die Informationen können mit iTunes (scheint nur Volumeninformationen in der Bibliothek zu speichern), beaTunes (kommerzielle Software), iVolume (kommerzielle Software) und einer Reihe anderer Tools auf verschiedenen Plattformen zu den Dateien hinzugefügt werden
  • Dies ist kein Synchronisations-Workflow: Die oben genannten Befehle, die ein zweites Mal ausgeführt werden, fügen FLAC-Dateien, die Sie dem Quellverzeichnis hinzugefügt haben, zu Ihrem Zielverzeichnis hinzu, halten jedoch nicht zwei Verzeichnisse Ihrer Musik synchron (umbenannte Dateien führen dazu duplizierte ALAC-Dateien mit unterschiedlichen Namen, gelöschte Dateien werden nicht aus Ihrem Zielverzeichnis gelöscht, wenn Sie IF NOT EXISTMetadatenänderungen verwenden, da der letzte Lauf nicht in den ALAC-Dateien wiedergegeben wird.

Schmerzlos und kostenlos.

Oliver
quelle
Willkommen bei Super User! Vielen Dank für die Veröffentlichung einer so umfassenden ersten Antwort. :)
Excellll
1

FFmpeg sollte dazu in der Lage sein; Es liegt an Ihnen, die richtigen Befehle dafür zu finden.

Hallo71
quelle
Dies ist ein alter Beitrag, aber es ist eher ein Kommentar als eine Lösung. Bitte erwägen Sie, die Antwort zu erweitern. Vielen Dank.
Fixer1234
0

Ich verwende die kostenlose und einfache Methode, indem ich nur FooBar und iTunesEncode für den Konverter verwende.

Zuerst müssen Sie iTunesEncode erhalten

Gehen Sie dann einfach zu FooBar und wählen Sie alle in Ihrer Flac-Wiedergabeliste aus -> Rechtsklick -> Konvertieren

Schauen Sie nach rechts -> Formate -> Klicken Sie darauf -> Wählen Sie Benutzerdefiniert

Und passen Sie es folgendermaßen an:

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

Füllen Sie andere zu konvertierende Parameter aus -> Konfiguration speichern (optional)

Und drücken Sie Konvertieren.

cnd
quelle
0

MediaMonkey kann dies ebenfalls, behält jedoch nur das BPM-Tag bei (mir ist nicht bekannt, dass Song Key in diesen Formaten ein standardisiertes Tag ist).

Hinweis: Sie müssen das 'MediaMonkey Codec Pack' für die ALAC-Codierung erwerben.

Rostiger Affe
quelle
0

Es gibt mehrere Möglichkeiten, flac in alac umzuwandeln. Unter Windows können Sie foobar2000 und das Encoder Pack verwenden . Unter Windows, Linux und Mac können Sie PowerShell, flac und ffmpeg verwenden.

$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

Weitere Informationen finden Sie in meinem Blogbeitrag: Konvertieren Sie Musikdateien von FLAC in ALAC

Meziantou
quelle