PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Flac-Dateien


rotalever
2009-05-06, 17:43:38
Ich habe hier einige Alben, die ich mit grip gerippt und als flac abgespeichert habe.

Es gibt manche Programme (z.B. Exaile) die nur von einem einzigen der Alben die Tags auslesen können und von allen anderen nicht. Andere Programme (z.B. Totem) können die Tags von allen Alben auslesen. Scheinbar habe ich eines der Alben mit anderen Einstellungen gerippt.
Nunja dann habe ich gelesen, dass man bei flac eigentlich gar keine Tags hat, sondern "Vorbis Comments".
Der Befehl vorbiscomments datei.flac, brachte mich allerdings für keine der flacs weiter, da er mir nur folgendes mitteilte:
Failed to open file as vorbis: Input is not an Ogg bitstream
Also mal den file-Befehl probiert:

datei.flac: Audio file with ID3 version 2.3, MP3 encoding

Die Datei ist angeblich eine MP3. Das kann aber von ihrer Größe her eigentlich nicht stimmen (44MB für 6 Minuten). Auch Nautilus sagt mir, dass es sich bei dem Codec der Datei um Flac handelt (selbst, wenn ich die Dateiendung in MP3 ändere).

Ich habe also mal zwei der Dateien mit einem Hex-Editor angeschaut. Eine, wo die Tags auch von Exaile korrekt erkannt werden und eine, wo die Tags z.B. nur von Totem erkannt werden.
Zunächst scheint oben in beiden Dateien ein ID3-Tag zu sein, was ja für flac-Dateien eigentlich seltsam ist? Zumindest beginnt die Datei mit ID3 gefolgt vom Tracknamen, Artistnamen etc.

Keine Ahnung wie die ID3-Tags in die flac-Dateien reinkommen, allerdings müssten ja noch irgendwo vorbis-comments zu finden sein.
Ich suche also mit dem Hex-Editor ein wenig weiter und finde in der Datei, wo auch Exaile die Tags auslesen konnte, Strings wie "ARTIST" oder "ALBUM", gefolgt von dem entsprechenden Namen. In der anderen Datei tauchen diese Strings nicht auf. Vermutlich sind das die Vorbis-comments die dort fehlen.

Jetzt frage ich mich, wie ich diese Vorbiscomments nachträglich in alle Dateien einfügen kann (die Informationen dazu stehen ja in den ID3-Tags). Und wie ich Grip so konfigurieren kann, dass das beim encoden automatisch passiert.

bluey
2009-05-06, 18:08:20
Kein Vorbiscomment, sondern metaflac zum lesen des tags nutzen.

sei laut
2009-05-06, 18:11:52
Ogg/FLAC Dateien fangen mit Oggs an und nicht mit ID3.

Von daher keine Ahnung, was dein Programm da für einen Schund zusammengebaut hat. Mit EAC (Exakt Audio Copy) bekomme ich nur FLAC-Dateien, die mit Oggs anfangen.

rotalever
2009-05-06, 19:28:18
Ok. Scheinbar habe ich grip nicht gut konfiguriert. Ich habe mal meine Konfiguration mit der Default-Konfiguration vergleichen, dabei ist mir aufgefallen, dass ich "Add id3 tags to encoded files" / ".. id3v2..." ausgewählt und "only tag files ending in .mp3" abgewählt habe. Daher scheinbar die id3-Tags in den Flac Dateien. Warum allerdings ein Album Vorbis-Comments hat und die anderen nicht bleibt irgendwie fraglich. Denn Dateien von beiden Alben fangen mit "ID3" an.

Die Vorbiscomments kann ich vermutlich irgendwie mit einem geeigneten Script und metaflac in die Dateien reinschreiben. Das müsste schon irgendwie gehen.
Wie aber entferne ich die ID3-Tags?

rotalever
2009-05-07, 20:08:29
So. Ich habe mir jetzt ein kleines Python-Script erstellt, das die Id3-Tags ausliest, als Vorbis Comments speichert und dann die ID3-Tags löscht. Nach ein paars Tests, dachte ich das Script würde soweit funktionieren und habe es auf sämtliche Flac-Dateien losgelassen.
Das war ein Fehler.
Die verwendete Bibliothek "mutagen" hat nämlich anscheinend nur id3v1-Informationen ausgelesen, da nun die Vorbis Comments teilweise einfach nach X Zeichen abgeschnitten sind. Die id3v2 tags sind natürlich auch bereits aus den Dateien gelöscht :D
Nun habe ich noch ein weiteres Script geschrieben, um die Tags wieder mit Hilfe der CDDB zu generieren. Dazu musste ich zwar alle CDs einmal kurz einlegen aber das ging schnell.

Jetzt ist das Problem jedenfalls gelöst :smile:

Falls es wen interessiert: Bei grip muss man zum Erstellen der Vorbiscomments die Commandline-Optionen von "flac" entsprechend anpassen.