# Schnelleres IO beim Schreiben von ID3v2

**URL:** https://community.mp3tag.de/t/schnelleres-io-beim-schreiben-von-id3v2/1790
**Category:** Vorschläge
**Created:** [March 16, 2005, 11:50pm UTC](https://community.mp3tag.de/t/schnelleres-io-beim-schreiben-von-id3v2/1790 "2005-03-16T23:50:39Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![abrax5](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@abrax5](https://community.mp3tag.de/u/abrax5)
#### Post date: [March 16, 2005, 11:50pm UTC](https://community.mp3tag.de/t/schnelleres-io-beim-schreiben-von-id3v2/1790/1 "2005-03-16T23:50:39Z")

</div>

Hallo Florian,

in bezug auf ID3v2 Geschwindigkeit schreibst Du in der FAQ:

> [@](#):
>
> **Warum dauert das Schreiben von ID3v2-Tags so lange?**
> 
> Der ID3v2 Tag steht am Anfang einer MP3-Datei. Falls noch kein ID3v2-Tag in der MP3-Datei steht ist noch kein Platz für einen neuen ID3v2 am Anfang der Datei reserviert. Deswegen muss zunächst eine temporäre Datei mit dem ID3v2-Tag angelegt werden. An diese temporäre Datei müssen dann die MP3-Daten angehängt werden. Das ist sehr Festplatten-intensiv, was in einer längeren Bearbeitungszeit resultiert. Beim Ändern eines bereits vorhandenen ID3v2 Tag sind die Bearbeitungszeiten um ein vielfaches kleiner.

Meine Frage in der Hinsicht wäre: Es muss doch nicht wirklich eine neue Datei angelegt werden, and die man die MP3 Nutzdaten dann anhängt. Eigentlich müßte doch prinzipiell nur die alte MP3 Datei "nach vorne verlängert" werden. Da kann man dann die ID3v2 Daten reinschreiben. Gibt es dazu nicht evtl. optimierte Win32 Funktionen oder so etwas?

Ich frage deshalb, da das nachträgliche Taggen von MP3s mit kID3, der Tagger von KDE, eindeutig schneller geht. Ich weiß zwar nicht, wie es im Source dort realisiert ist, aber es scheint optimiertere Möglichkeiten zu geben.

Da dies die Kernfunktionalität und eine wesentliches Kriterium für eine angenehme Benutzung von MP3Tag ist, würde ich mich freuen, hier in naher Zukunft eine Verbesserung zu sehen.

Danke für deine tolle Arbeit und viele Grüße,

Dominik

**Nachtrag:**  
Vielleicht bringt es was, für MP3 ID3 Tags, die ID3Lib einzubinden:  
[http://id3lib.sourceforge.net/](http://id3lib.sourceforge.net/) (benutzt die GNU Lesser GPL als Lizenz)  
das ist die Tagging Library von KID3, und die scheint für diese Zwecke ziemlich flott zu sein. Aber ich will mich hier nicht zu weit aus dem Fenster lehnen, alles nur als Vorschlag gedacht.

---

<div class="post-metadata">

### Author: ![Sebastian\_Mares](https://community.mp3tag.de/user_avatar/community.mp3tag.de/sebastian_mares/32/9285_2.png) [@Sebastian\_Mares](https://community.mp3tag.de/u/Sebastian_Mares)
#### Post date: [March 17, 2005, 5:08am UTC](https://community.mp3tag.de/t/schnelleres-io-beim-schreiben-von-id3v2/1790/2 "2005-03-17T05:08:46Z")

</div>

MP3Tags ID3v2 Funktionalität basiert schon auf ID3Lib. In der Windows API gibt es, soviel ich weiß, keine Möglichkeit, Bytes am Anfang einer Datei zu schreiben, ohne dabei den ganzen Inhalt erneut zu schreiben. Vielleicht hat Linux das besser im Griff. Eventuell hängt es auch damit zusammen, dass Linux Ext2FS / Ext3FS / Raiser FS / ... als Dateisystem benutzt.

---

<div class="post-metadata">

### Author: ![Chronial](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/c/9f8e36/32.png) [@Chronial](https://community.mp3tag.de/u/Chronial)
#### Post date: [March 25, 2005, 2:05pm UTC](https://community.mp3tag.de/t/schnelleres-io-beim-schreiben-von-id3v2/1790/3 "2005-03-25T14:05:45Z")

</div>

Das ist schlicht und einfach nicht möglich.  
In einem FAT/NTFS Dateisystem kann man nicht vor eine Datei schreiben.  
Meinem Kenntnisstand nach liegt das daran, dass Dateien in (bei win2k 4k große) Cluster aufgeteilt ist. Und bis auf den letzten Cluster müssen die alle "voll" sein. Theoretisch wäre es also schon möglich vor eine Datei zu schreiben - allerdings nur in 4kb Blöcken. Also recht unnütz.  
Ich bezweifle aber, dass das bei LInux geht - meines Wissens ist das in keinem modernen Filesystem möglich (das ist auch recht schwachsinnig, da es zu einer recht wahnsinnigen Fragmentierung führen würde)
