Dateiinfo von mp3, wma und mpeg Dateien auslesen



  • Auf die Gefahr hin das ich hier nun gelünscht werde. Die Suchfunktion gab mir zwar viele Threads mit ähnlichen Themen aber nicht das gewünschte Resultat.
    Bei mp3's und wma's werden ja zum Beispiel Interpret, Albumtitel, Jahr, Titelnummer, Genre, Songtext, Dauer etc. gespeichert.
    Somit meine ich hier nun nicht die IDV3 Tags sondern die direkte Dateiinfo.
    Für Video's gibt es ähnliche Informationen wie Auflösung etc.

    Wie kann ich genau diese Informationen auslesen?



  • werden nicht zumindest in mp3-files die entspr. infos zu interpret, titel, etc. gerade in den id3-tags gespeichert?
    oder hab ich die frage falsch verstanden?

    mfg,
    julian



  • Hm so wie ich das sehe aber nicht nur dort. Und zum Beispiel die Spieldauer ermittelt Windows zum Beispiel auch auf andere Weise. Diese steht nämlich nicht in den IDV3 Tags.

    Außerdem haben bestimmte IDV3 Tags nur gewisse Längen. Titel zum Beispiel 30 Zeichen. Nun gibt es aber auch Titel die darüber hinaus gehen. - In den IDV3 Tags stehen dann nur die 30 Zeichen.
    Der Windows Explorer zeigt jedoch den vollen Titel an also mit Beispielsweise den vollen 40 Zeichen (falls denn soviele). Somit schließe ich daraus, dass diese eben an anderer Stelle noch gespeichert werden.

    Ich hoffe du konntest mir folgen.



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • die Spielzeit einer Mp3 wird anhand der bitrate errechnet.
    Bei konstanten bitraten ist das ziemlich einfach, bei variablen Bitraten werden ein paar Container (oder auch frames, wie man es nennen will) gescannt und daraus eine druchschnittsbitrate errechnet, die für die Längenberechnung herangezogen wird.
    Je nach System könnte man auch die komplette Datei (mit variabler Bitrate) scannen und würde dann die exakte Spielzeit bekommen.

    Ich kenne das abgespeckte Verfahren aus einem Navi, bei dem man halt nur wenig Ressourcen zur Verfügung hat.

    Bei den id3 tags ist es so, das es mittlerweise zwei varianten gibt.
    - ID3v1 (Version 1), wo eine Zeichenbeschränkung und auch eine Beschränkung der Daten insgesamt (Artist, Titel, Nummer, etc...) drin ist. (afair ist auch die ID3 Blockgröße auf ~1MB beschränkt? Weiss ich gerade nicht so genau aus'm Kopf)

    - ID3v2 (Version 2), kann zusätzlich unzählige Daten (Geschwindigkeit, Länge, Songtext, Meta Daten, etc) enthalten und ist auch nicht auf eine Größe beschränkt. (könnten also theoretisch auch 100MB ID3 Daten sein...)

    Der Id3 block wird innerhalb einer Mp3 gekennzeichnet und ist afaik auch Klartext. Und ja, eine Mp3 kann ID3v1 und ID3v2 Blöcke enthalten. Wer kein ID3v2 kann, bedient sich dann an dem älteren Format. 😉

    Ich bin gerade nicht sicher, ob der ID3 Block immer an gleicher Stelle einer Mp3 steht, aber ich meine das dem nicht so ist... Also müsste man eine Datei komplett durchsuchen, um herauszufinden ob Id3 Daten vorhanden sind.

    Gruß



  • Zumindest stehen die ID3v1 Tags an selber Stelle in den letzten 128 Byte der Datei. - Lässt sich auch zum Beispiel bei Wikipedia nachlesen. Den ID3v1 Header nutze ich ja derzeit. Nur eben enthält dieser nicht alle Daten die ich brauche.

    Ich weis zwar, wie ich bei einem ID3v2 Header die Stelle identifizieren kann an der die Tags stehen. - Habe aber momentan keine Ahnung wie ich diese auslesen sollte.

    Für mich nun dennoch unverständlich ist, woher die ganzen Daten in den Dateiinfo's der Dateien kommen. Eine wma Datei, welche zum Beispiel ebenfalls Titel, Interpret und so weiter gespeichert haben kann, besitzt ja keinen ID3 Header.



  • inflames2k schrieb:

    Zumindest stehen die ID3v1 Tags an selber Stelle in den letzten 128 Byte der Datei. - Lässt sich auch zum Beispiel bei Wikipedia nachlesen. Den ID3v1 Header nutze ich ja derzeit. Nur eben enthält dieser nicht alle Daten die ich brauche.

    Ich weis zwar, wie ich bei einem ID3v2 Header die Stelle identifizieren kann an der die Tags stehen. - Habe aber momentan keine Ahnung wie ich diese auslesen sollte.

    Für mich nun dennoch unverständlich ist, woher die ganzen Daten in den Dateiinfo's der Dateien kommen. Eine wma Datei, welche zum Beispiel ebenfalls Titel, Interpret und so weiter gespeichert haben kann, besitzt ja keinen ID3 Header.

    Solche Metadaten werden ja nicht nur in MP3s gespeichert. OGG-container (Vorbis audio z. B.) besitzen ebenfalls Tags, die sich auslesen lassen. Bei WMA ist es ziemlich sicher ebenso.

    ID3v2 - Tags auslesen ist ein bisschen aufwaendiger als die ID3v1-Tags. Aber wozu selbst schreiben, gibt genug libs die das koennen. Im Idealfall findest du sogar eine Lib, die die Metadaten mehrerer Dateiformate kennt, einfach mal googlen, gibts zuhauf 🙂



  • bezüglich wma musst du dich wohl mit ASF auseinandersetzen...
    Wenn du das Rad nicht neu erfinden möchtest, kannst du auch nach "WMA Parser" bzw. "ID3v2 Parser" googlen.
    Da solltest du was nützliches finden.

    edit: Wie Blue-Tiger ja schon erwähnt hatte. 😃


Anmelden zum Antworten