Wenn man zu einer FLAC-Datei ein Album-Cover hinzufügt, wird die Dateigröße um die Dateigröße der angehängten Bilddatei vergrößert, was dem normaln und zu erwartenden Verhalten entspricht.
Entfernt man jedoch ein Cover von einer FLAC-Datei, sinkt die Dateigröße nicht.
Fügt man der FLAC-Datei ein neues Cover hinzu, steigt die Dateigröße nur, wenn das neue Cover mehr Speicherplatz in anspruch nimmt, als das letzte.
Getestet mit Version 2.50 und 2.51. MP3s und APE dateien sind nicht betroffen. Hier wird mit dem entfernen des Covers auch die dateigröße wieder reduziert.
Hallo,
ich habe das gleiche Problem mit FLAC-Dateien in der Version 3.02.
Per MusicBrainz habe ich mir Cover-Bilder mit 14MB eingefangen.
Leider bekomme ich die FLAC-Dateien durch das Löschen der Bilder mit MP3tag nicht kleiner.
Eigentlich müsste der Block gelöscht werden.
Es gibt eine Lösung mit MP3tag?
Habe ich etwas übersehen?
Mein Wunsch wäre: nicht das Bild löschen - das verkleinert den tag nicht, sondern den ganzen Block, der für das Bild angelegt wird zu löschen - das verkleinert die Datei.
Mp3tag hat keine eingebaute Funktion um den PADDING block von FLAC Dateien zu reduzieren.
Aber mp3tag bietet die möglichkeit externe Tools eizubinden.
Dadurch kannst du die Funktion ganz einfach Nachrüsten:
du benötigst metaflac.exe (Teil der FLAC Kommandozeilen Tools: FLAC - Downloads)
in mp3tag öffne Datei -> Optionen
wähle links in der Liste Tools aus
klicke auf den Neu Button
wähle einen passenden Namen
Z.B.: "METAFLAC: remove covers; shrink padding"
setze den Pfad zu metaflac.exe
gebe die Parameter ein: --remove --block-type=PICTURE,PADDING --dont-use-padding "%_path%"
wähle für alle ausgewählten Dateien
bestätige mit OK
Das entfernt jedes in die FLAC Datei eingebette Cover. Und durch --dont-use-padding wird der Platz, den die Covers vorher belegt haben, freigegeben.
Markiere nun die betroffenen FLAC Dateien, Rechtsklick -> Tools -> METAFLAC: remove covers; shrink padding
Das ganze reduziert allerdings den kompletten PADDING Block.
Die Standardgröße des Blocks ist 8192 bytes (65536 bytes für Dateien mit einer Audio Stream länge größer 20min) um zu verhindern, das beim Ändern von Tags die Datei jedesmal neu geschrieben werden muss (weil die neuen Tags nicht in den PADDING Block passen und dieser vergrößert werden muss).
Da metaflac keine zwei Hauptoperationen gleichzeitig durchführen kann, wird für die Wiederherstellung des ursprünglichen PADDING Blocks ein zweiter Aufruf benötigt.
Der zweite Tool Eintrag wird analog zum ersten erstellt. Nur Name und Paramter ändern sich: Name: METAFLAC: restore std. padding size Parameter: --add-padding=8192 "%_path%"
Nach dem ersten Tool einfach noch das zweite Aufrufen und fertig.
Danke Doni! Das ist ein guter Tipp von Dir, den ich eben erst gelesen und umgesetzt habe - darum auch die Reaktivierung dieses älteren Threads.
Aber zwei Dinge scheine ich noch nicht richtig verstanden zu haben:
Warum haben manche meiner FLAC-Dateien eine geringere Padding-Größe als der Standard (z.B. nur 7919 Bytes)? Ich dachte bis eben, der Standard wäre sowas wie die Mindestgröße des Padding-Bereiches...
Kann ich die auf 0 reduzierte Größe des Padding-Blocks nicht belassen? Also nur
ausführen? Was bringt es mir die Größe wieder auf Standard 8192, bzw. 65536 Bytes zu setzen, außer dass die Größe wieder steigt?
Meine geschriebenen Tags bleiben ja wie es scheint auch mit 0 Bytes Paddinggröße erhalten.
Kannst Du mir, falls Du das noch lesen solltest oder jemand anderes mit dem Wissen, das zu meinem Verständnis bitte noch beantworten?
Danke!
PS: Noch etwas das mich verwirrt...
Viele schreiben hier von einer eingestellten Paddinggröße (Standard??) für FLAC-Dateien von 4096 Bytes. Was ist nun richtig? 8192 oder 4096 oder spield das gar nicht die Rolle?
Wenn Du beabsichtigst bei den Taginhalten nie mehr etwas zu verändern, bringt Dir das in der Tat nichts. Der leere Bereich dient - wie schon von Doni geschrieben - dazu, zu verhindern, dass bei jeder Ergänzung im Tagbereich (und sei sie auch noch so minimal, z.B. nur 1 Zeichen), die komplette Datei neu geschrieben werden muss, was natürlich den Speichervorgang verlangsamt. Bei 1 Datei mag das noch egal sein. Wenn Du aber mal Änderungen bei mehreren hunderten oder tausenden Dateien in einer Aktion machst, wirkt sich das schon aus. Der Speichervorgang dauert natürlich auch umso länger, je größer die zu speichernden Dateien sind. Wenn Du allerdings Inhalte hinzufügst, die den reservierten Paddingbereich überschreiten (z.B. ein oder mehrere riesige Cover) muss ungeachtet des reservierten Platzes die Datei natürlich auf jeden Fall neu geschrieben werden und um einen neuen Paddingblock erweitert werden.
Nein, das Entfernen der Bilder (habe die oft blöderweise damals beim Rippen mit dBpoweramp in den Tags ablegen lassen) ist die einzige und geplant letzte Aktion an den Dateien. Dann kann ich also das Podding bei 0 kB belassen, ok.
Dankeschön!
Was mir trotzdem noch unverständlich ist: wieso legte man den "Standard"-Wert des Paddings bei FLAC (k.A. ob nur dort) auf 8192 oder wie von einigen hier geschrieben auf 4096 - sind das Byte? - fest? Was bringt das, wenn hinzugefügte Bilder sowieso sehr unterschiedliche Größen haben und dann, wie ich das verstehe, die Dateien sowieso neu geschrieben werden müssen, denn fast jedes Bild übersteigt ja diesen Platz der Standardgröße des Paddings?
Ich könnte mir vorstellen, dass die Tag-Größe inkl. Padding ursprünglich alleine für Text ausgelegt war/ist...
Ja, die Padding Größe wird in bytes angegeben. Die Standard Größe wurde auf 8kib (8192 bytes) festgelegt und wird vom offiziellen FLAC Encoder automatisch an das Ende jeder FLAC Datei geschrieben (s. offizielle FLAC Dokumentation).
Die größe ist so gewählt, dass im Normalfall alle Standard Tags (ohne Cover) ohne Probleme in den Padding Block passen, ohne die Datei jedesmal neu schreiben zu müssen. Dabei ist zu berücksichtigen, dass Vorbis Comment (der Tag Standard für FLAC Dateien; vgl. ID3 für mp3 Dateien) in UTF-8 codiert sind. Das heißt es werden alle Unicode Schriftzeichen unterstützt. Aber je nach Zeichen werden bis zu vier Byte belegt. Im worst case Szenario (Asiatische Schriftzeichen, Emojis) könnte man also 2048 Zeichen über alle Tags verteilt nutzen, ehe die Datei neu geschrieben werden muss.
Bei mehren MB pro Datei fallen die 8kib nicht groß ins gewicht und sind ein guter Kompromiss.
Für Cover aber, die je nach Qualität sehr unterschiedlich groß sein können, ist es eher schwierig eine geeignete größe für den Padding Block zu finden.
Achtung: die oben genannten Gründe für die gewählte Standard Größe des Padding Blocks basieren nicht auf offiziellen Angaben und sind rein spekulativ.
Seit Mp3tag v3.24 gibt es im Kontextmenü von FLAC-Dateien einen Eintrag Utils → FLAC optimieren welches das Padding der ausgewählten Dateien auf 4KB setzt.