FLAC in ALAC konvertieren, Tags beibehalten - in einem Skript

3

Ich erstelle gerade ein Skript, um parallele Musikbibliotheken zu verwalten, da ich Geräte habe, die FLAC nicht abspielen können, aber meine Musik lieber in diesem Format speichern möchten. Ich habe jedoch Probleme mit dem Teil, der FLAC in ALAC konvertiert. Derzeit wird nur FFMPEG für die Ausführung des Auftrags abgesetzt. FFMPEG (Version 0.5.9) kann die Tags jedoch nicht beibehalten! -map_meta_data infile: outfile funktioniert nicht ... und -map_meta_data outfile: infile, -map_meta_data 0: 0 oder -map_meta_data 0: 0, s0 (oder so ähnlich), die alle von mir vorgeschlagen wurden .

Also ... Ich suche jetzt ein Befehlszeilenprogramm (oder eine Python-Bibliothek), das unter Linux FLAC in ALAC konvertieren kann, während die Tag-Daten erhalten bleiben. Es wäre sogar akzeptabel, wenn ich die Tags nach der Konvertierung kopieren müsste - aber auch dafür kann ich keine Lösung finden. Ich habe QLCLI ausprobiert, aber es scheint beim Import von Quod Libet zu scheitern. Ich versuche das alles unter Ubuntu zum Laufen zu bringen. Irgendwelche Vorschläge?

Eric Astor
quelle
1
Können Sie eine neuere Version von FFmpeg ausprobieren? Sie können es aus dem Quellcode kompilieren, wie auf der Homepage dokumentiert
slhck
1
In Ubuntu 12.04 LTS scheint die bereitgestellte Version von ffmpeg die Tags beizubehalten. Ich habe es versucht ffmpeg -i "in.flac" -acodec alac "out.m4a" und alle Tags scheinen konvertiert worden zu sein.
mivk

Antworten:

1

Das aktuelle ffmpeg (Version 2.0.2, wie ich dies schreibe) unterstützt sowohl das Dekodieren als auch das Kodieren für ALAC. Außerdem werden standardmäßig globale Metadaten aus der ersten Eingabedatei kopiert.

So rufen Sie es auf:

ffmpeg -i track01.flac -c:a alac track01.m4a

hat eine ALAC-Datei mit den kopierten Metadaten erstellt.

Roland Smith
quelle
-1

Wenn die Audio-Quelldatei ein eingebettetes Cover hat, konvertiert ffmpeg das in ein Video, was wahrscheinlich nicht das ist, was Sie wollen. Der vollständige Befehl lautet:

ffmpeg -i file.flac -vn -acodec alac file.m4a

Und im Batch-Modus:

ls *flac | while read f; do
    ffmpeg -i "$f" -acodec alac -vn "${f[@]/%flac/m4a}" < /dev/null;
done

Das -vn Schalter bewirkt, dass ffmpeg "Video" -Teile der Quelldatei ignoriert. Tags werden in die Zieldatei übertragen, aber ich würde es vorziehen, Picard Tagger zu verwenden, um die neuen Dateien mit einer robusten Artist / Work / Release-Datenbank als MusicBrainz zu versehen.

Hier sind fortgeschrittenere Techniken:

https://avi.alkalay.net/2016/09/multimedia-linux-cli.html

avibrazil
quelle