ID3 (metadata)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 februari 2021; kontroller kräver 3 redigeringar .

ID3 (från engelska.  Identifiera en MP 3 ) är ett metadataformat som oftast används i MP3 - ljudfiler . ID3 innehåller spårtitel, album, artistnamn, etc. data som används av mediaspelare och annan mjukvara, såväl som hårdvaruspelare, för att visa filinformation och automatiskt organisera ljudsamlingen.

Det finns två inkompatibla versioner av ID3: ID3v1 och ID3v2.

ID3v1

Efter skapandet av MP3-formatet uppstod ett problem med lagringen av information om musikfilen - detta fanns inte i MP3. 1996 kom Eric Camp på idén att lägga till en bit minne till en fil för att lösa detta problem.

Den första versionen av ID3-taggar var bara 128 byte , och började med strängen TAG . Taggen placerades i slutet av filen för att bibehålla kompatibiliteten med tidiga spelare. Några av dem gjorde lite ljud när de försökte läsa taggen, men de flesta ignorerade det. Moderna spelare uppfattar denna information korrekt.

Eftersom det fanns lite utrymme för data kunde endast grundläggande information om låten lagras i sådana taggar: titel, album, artist, kommentar - 30 byte för varje fält, 4 byte för att lagra år och en byte för genren, vilket kunde väljas från en fördefinierad lista med 80 värden ( Winamp utökade senare listan med 68 värden). Om titlarna på låtar eller album innehöll mer än 30 tecken, klipptes de bort. På grund av storleksbegränsningar var det naturligtvis inte fråga om några avancerade metadatalagringsalternativ.

Den enda förbättringen som implementerades i version 1.1 föreslogs av Michael Mutschler 1997: eftersom kommentarsfältet fortfarande är för litet för att lagra något användbart, beslutades det att förkorta det med två byte för att använda dem för att lagra nummerspåret.

Utökat format

Den utökade taggen är ett extra datablock före ID3v1-taggen, vilket gör att du kan expandera vissa ID3(v1-v1.1)-fält tre gånger och lägga till några nya fält. Utvecklarna av denna tillägg försökte följa idén om den största kompatibiliteten, så början av alla taggar lagras i en vanlig ID3v1-tagg, vilket gör att alla program som förstår ID3v1 kan läsa eller skriva data, och bara om det inte finns tillräckligt många tilldelade bytes kommer fortsättningen för varje fält att lagras i ett utökat block (förutsatt att programmet kan skriva där). Det utökade blocket upptar 227 byte, ligger före ID3v1-taggen och börjar med TAG+-taggen. Den tilldelades ytterligare 60 byte för fälten "låttitel", "artist" och "album", en byte för hastigheten (stil, typ) av musik (00=okänd, 01=långsam, 02=medium, 03= fast, 04=hardcore), 30 byte för en gratis genrepost, samt sex byte för start- och sluttid för musiken i filen (till exempel för att smidigt öka volymen). Kommentarsfältet utökades inte och förblev lika med 28–30 byte. Om inget av ovanstående används utelämnas det automatiskt.

Det var en inofficiell standard och stöddes av ett litet antal spelare.

Struktur ID3

Strängar separeras med nollor eller mellanslag. Oanvända fält fylls i som tomma rader.

ID3(v1-v1.1): 128 byte

Fält Längd, byte Beskrivning
rubrik 3 MÄRKA
namn trettio Namn på 30 tecken
Testamentsexekutor trettio 30 tecken artistnamn
Album trettio Albumtitel med 30 tecken
År fyra Årets stränginlägg
Kommentar 28 [1] eller 30 Kommentar
Nullbyte [1] ett Om spårnumret finns är denna byte 0
spår [1] ett Spårnummer i albumet eller 0; räknas endast om föregående fält är 0
Genre ett Index i listan över genrer eller 255

Utökad tagg

Placerad före ID3v1-taggen: 227 byte

Fält Längd, byte Beskrivning
rubrik fyra "TAG+"
namn 60 Ytterligare 60 byte för fältet "Namn" ID3v1
Testamentsexekutor 60 Ytterligare 60 byte för "Artist"-fältet ID3v1
Album 60 Ytterligare 60 byte för "Album"-fältet ID3v1
Hastighet (stil, typ) av musik ett Ju högre nummer, desto mer "aktiv" är musiken
Genre trettio 30 tecken sträng
Starttid 6 Tid i mmm-format: ss
sluttid 6 Tid i mmm-format: ss

Storleken på ID3v1-fälten, med hänsyn till den utökade taggen, kommer att vara:

Fält Storlek, byte
namn 90
Testamentsexekutor 90
Album 90

Lyrics3

Lyrics3 är det första försöket att bädda in texter i en MP3-fil av Petr Strnad under ID3v1.x-eran. Textblocket placerades mellan raderna LYRICSBEGIN och LYRICSEND i slutet av filen, före ID3v1.x-taggen (om den inte fanns skapades den). Texten skrevs i ISO-8859-1-kodning , den maximala längden var 5100 byte, raderna separerades med CR + LF-tecken, stöd för tidsstämplar implementerades.

Med tiden släpptes formatet Lyrics3 v2.00, som hade fler funktioner (särskilt blockstorleken ökade avsevärt, ytterligare fält dök upp och möjligheten att infoga en bild). 2.00-blocket placerades mellan raderna LYRICSBEGIN och LYRICS200 och hade en variabel längd, som skrevs i de sista sex byten före den sista raden LYRICS200.

Idén användes inte i stor utsträckning på grund av lanseringen av ID3v2-standarden, där en sådan idé organiserades mer flexibelt och funktionellt.

Kritik och kommentarer

ID3v1 har kritiserats mycket för ett antal problem. Först och främst är dessa för små fält, vars storlek inte räcker till för att lagra det mesta av informationen - 30 byte räckte inte för långa namn, de skars ner.

Förslaget att låsa genren till ett begränsat antal alternativ fick också många motståndare. Många gillade helt enkelt inte den föreslagna listan, som inte tilldelade utrymme för sådana genrer som till exempel minimalism eller barock .

ID3v1 saknade också internationalisering . Enligt specifikationen måste alla strängar lagras i ISO 8859-1 , men i praktiken använder användare ofta den nationella kodningen, så de såg ofta krakozyabry .

ID3v2

Som svar på kritiken mot ID3v1 utvecklades en ny standard, ID3v2. Den publicerades den 26 mars 1998 och är helt annorlunda än ID3v1.

ID3v2-taggar har variabel längd och kan visas i början [2] eller slutet [3] av filen. Taggen består av flera "ramar". Varje ram innehåller någon form av metadata. Till exempel innehåller ramen "TIT2" verkets titel, och ramen "WOAR" innehåller en länk till konstnärens webbplats. Den maximala storleken på en ram är begränsad till 16 MB och en tagg får inte överstiga 256 MB. Texten lagras i UTF-16 [2] eller UTF-8 [3] kodningar . Textramar är markerade med en kodningsbit.

ID3v2-standarden definierar 84 ramtyper och tillåter även applikationer att skapa sina egna ramar. Bland standardramarna finns ramar för att lagra omslagsbilden, slag per minut , upphovsrätts- och licensinformation, sångtexter, fritext, länkar och annan data.

En fil som innehåller en ID3v2-tagg börjar med teckensekvensen "ID3". Dessa tecken är en del av "Header"-taggen. Rubriken är 10 byte lång och innehåller fälten nedan. Byteordningen i ID3v2 är big endian . Storleken är i 7-bitars byte (den mest signifikanta biten är satt till 0).

Fält Offset, byte Längd, byte Beskrivning
Signatur 0 3 "ID3"
Version 3 2 2, 3 eller 4
Flaggor 5 ett
Storleken 6 4 (7-bitars)

Ramhuvudet är 10 byte långt och innehåller fälten som listas i följande tabell.

Fält Offset, byte Längd, byte Beskrivning
Identifierare 0 3 [4] , 4 [5] Ramtyp, latinska versaler och siffror
Storleken 3 fyra
Flaggor 5 2

Versioner av ID3v2

ID3v2.2 är den första utbredda versionen av ID3v2. Anses nu föråldrad. Ett ram-ID med tre tecken används istället för ett fyra tecken ("TT2" för en ram med en arbetstitel istället för "TIT2").

Ramformaten ID3v2.2, ID3v2.3 och ID3v2.4 skiljer sig något.

ID3v2.3 är den tredje och mest använda versionen idag. Expanderar storleken på fältet "Identifier" till fyra byte, lägger till fältet "Antal ramar". En ram kan innehålla flera värden separerade med "/".

ID3v2.4 är den fjärde (nuvarande) versionen. Tillåter att strängar lagras i UTF-8- kodning . En nollbyte används för att separera värden, och tecknet "/" kan användas i text. Nu kan du lägga till en tagg i slutet av filen, som i ID3v1.

"Sektioner" ID3v2

I december 2005 föreslogs tillägg [6] för att länka text och bilder till uppspelningstid. Den första låter dig skapa en innehållsförteckning för att snabbt hoppa till en specifik plats (eller kapitel) i en ljudfil. Med hjälp av den andra kan du organisera visningen av bilder (bildspel). Ett typiskt program är podcasting .

Kritik

På grund av skillnader i ID3v2-versioner stöder många spelare fortfarande inte alla versioner av taggarna. Problemet är att olika versioner använder olika datastrukturer. För att till exempel extrahera data från ramarna "TIT2" (med låtens titel) och "USLT" (med låtens text), krävs olika algoritmer. Andra taggformat som APEv2 lagrar data som nyckel-värdepar och har inte detta problem.

ID3v2 lagrar information om ljuddata. Till exempel lagrar ramen "TLEN" längden på sången, och ramen "AENC" lagrar information om komprimeringsmetoden .

I ID3v2.2 och ID3v2.3 måste taggen placeras i början av filen, vilket underlättar streaming, men kräver att hela filen skrivs om när taggfälten ändras. Version ID3v2.4 låter dig placera taggdata i slutet av filen. Taggredigerare kan lämna utrymme i taggfälten för att förhindra att filen skrivs över om taggen förstoras, men denna operation är inte standard: kraven för taggar varierar mycket, särskilt om "APIC" (associativa bilder) är kopplade till musiken .

Utfasade implementeringar

Eftersom de flesta av filerna innehåller tidiga versioner av ID3v2-taggar har utvecklarna inte bråttom att lägga till stöd för alla taggformat och alla typer av ramar som beskrivs i ID3v2-standarden till sina produkter.

Windows Explorer

Windows utforskaren[ vad? ] stöder ID3v1 och ID3v2.3 versionstaggar.

Explorer kan inte läsa ID3v2.4 versionstaggen, och när du försöker redigera den ger den ett felmeddelande 0x8007000D.

Explorer läser och skriver ID3v1-taggar, men med en twist. Om endast ID3v1-taggen är skriven i MP3-filen kommer Explorer att läsa den, och vid redigering kommer den att skriva data till ID3v1 och lägga till ID3v2.3-taggen. ID3v1-taggredigering stöds inte. Om filen innehåller både ID3v1- och ID3v2.3-taggar, kommer Explorer att läsa ID3v2.3-versionen, och vid redigering kommer den att duplicera data i båda taggarna. Om det inte fanns några taggar i MP3-filen kommer Explorer bara att skriva ID3v2.3-taggen.

Redigera ID3

Det finns många program för att redigera ID3-taggar. Bland dem:

Förmågor:

  • redigera flera filer samtidigt ("batch tagging");
  • sök och ersätt.

Använd i andra format och alternativ

ID3-taggar skapades för att inkluderas i MP3- och MP3Pro-filer , men kan också användas i andra filformat. AIFF är det enda formatet som börjar använda ID3v2-taggen brett. Detta format är baserat på RIFF; ID3-taggen lagras i en "chunk" (chunk) som heter "ID3". WAV (även baserat på RIFF) kan innehålla en ID3-tagg, men den här funktionen används inte. "Broadcast WAV" är det enda allmänt använda WAV-taggningssystemet. Windows Media-format ( ASF , WMA , WMV ) har sina egna taggformat men stöder även ID3-inbäddning som attribut [7] . Det är möjligt att inkludera ID3 i MP4 [8] , men de flesta program stöder inte det. Andra behållarbaserade format använder sina egna taggningssystem. Vorbis använder till exempel Vorbis-kommentarer och stöder inte ID3-inbäddning eftersom ID3 kan bryta behållarens struktur.

Se även

Anteckningar

  1. 1 2 3 Spårnumret skrivs i kommentarens två sista bytes. Om kommentaren är längre än 28 tecken är spårnumret inte tillgängligt
  2. 1 2 För ID3v2.2, ID3v2.3, ID3v2.4
  3. 1 2 För ID3v2.4
  4. För ID3v2.2
  5. För ID3v2.3 och ID3v2.4
  6. Newell, C. "ID3v2 Chapter Frame Addendum" (nedlänk) . ID3.org ( 2 december 2005 ). Hämtad 6 februari 2008. Arkiverad från originalet 15 mars 2012. 
  7. "Windows Media Developer Center: ID3 Tag Support" (nedlänk) . Microsofts utvecklarnätverk . Microsoft . Hämtad 6 februari 2008. Arkiverad från originalet 15 mars 2012. 
  8. "MP4" registreringsmyndigheten (nedlänk) . Hämtad 5 juli 2008. Arkiverad från originalet 26 augusti 2012. 

Länkar