avconv (oder ffmpeg, dessen Gabel avconv ist) kann dies von der Kommandozeile aus tun:
avconv -i input.flac -c:a alac output.m4a
Es sollte die Metadaten für sich behalten.
So führen Sie jeden flac in einem Verzeichnis aus:
for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
So führen Sie jeden flac rekursiv aus (im aktuellen Verzeichnis und in allen Unterverzeichnissen):
shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done
Wenn Sie die Flacs in ogg-Dateien oder etwas haben, ändern Sie offensichtlich ./*.flac
zu ./*.ogg
.
Ich denke, dies sollte mit avconv / ffmpeg aus den Repositories funktionieren (da ALAC unter der Apache-Lizenz veröffentlicht wird und legal vertrieben werden kann), obwohl ich die Version von medibuntu installiert habe.
Wenn Sie die ursprünglichen Dateien loswerden möchten, können Sie rm
in die Schleife setzen. In dieser Version wird das -n
Flag für avconv verwendet, sodass keine bereits vorhandenen ALAC-Dateien überschrieben werden. Wenn Sie &&
stattdessen verwenden;
, wird die ursprüngliche FLAC-Datei nicht gelöscht, wenn avconv mit einem Fehler beendet wird:
for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done
Beachten Sie, dass das Löschen von Dateien mit rm irreversibel ist (außerhalb der forensischen Datenwiederherstellung). Gehen Sie daher vorsichtig damit um.