AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Herausfinden ob mp3 eine vbr oder cbr ist.
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob mp3 eine vbr oder cbr ist.

Ein Thema von Mazel · begonnen am 16. Aug 2006 · letzter Beitrag vom 16. Aug 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 15:07
Hallo,

ich möchte auf einen einfachen weg herausfinden ob es sich bei einer MP3 um eine VBR (variable bitrate) oder um eine CBR (constant bitrate) handelt.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 15:23
Die sichere Methode ist, alle MPEG-Frames der Datei auf die Bitrate hin zu untersuchen. Die Bitrate lässt sich dabei aus dem 4Byte großen Header eines MPEG-Frames bestimmen. Wie dieser Header genau aufgebaut ist, und wie man daraus Bitrate, Samplerate und einiges mehr abliest, kann man über Google etc. finden.
Eine andere (wesentlich schnellere) Möglichkeit ist es, nach dem sog. Xing-Header zu suchen, der eigentlich ein mißbrauchter MPEG-Frame ist, und bei fast allen vbr-mp3-Files vorhanden ist, aber bei keinem cbr-mp3.
Letztere Variante nutzt die MPEG-Klasse in meinen MP3FileUtils.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 17:14
Zitat von Gausi:
... nach dem sog. Xing-Header zu suchen, ...
Ist das der Header, welcher auch als VBR-Header bezeichnet wird?
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 17:31
Vermutlich. In dem Teil, was ich als Xing-Header kennengelernt habe, steht u.a. die Anzahl der Frames drin, wodurch die Spieldauer bestimmt wird und mit der Dateigröße zusammen die durchschnittliche Bitrate ermittelbar ist.
Zusätzlich gibts da wohl ein Sprungstellenarray, damit ein Player nicht die gesamte Datei lesen muss, und trotzdem aus einer Positionsangabe in (Milli)Sekunden (eingegeben vom Nutzer z.B. über eine Trackbar), eine recht genaue Position in Bytes innerhalb der Datei bestimmen kann. Das ignoriert meine Klasse aber, weil sie das nicht braucht

Bei einem CBR-File sind solche Angaben natürlich überflüssig.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 18:09
Zitat von Gausi:
Vermutlich. In dem Teil, was ich als Xing-Header kennengelernt habe, steht u.a. die Anzahl der Frames drin, wodurch die Spieldauer bestimmt wird und mit der Dateigröße zusammen die durchschnittliche Bitrate ermittelbar ist.
Ich habe eben gelesen, das der Xing einer von zwei VBR-Headern ist.
http://www.codeproject.com/audio/mpegaudioinfo.asp
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 19:04
Hmmm...das sieht interessant aus. Werde mir den Link merken, und ggf. die Erkennung dieses Headers mit einbauen. Allerdings hat er wohl kaum eine reale Bedeutung, da der originale Fraunhofer Encoder wohl kaum noch Verwendung findet. Alleine schon deswegen, weil der afaik nicht "frei" ist wie Lame. Begegnet ist mir dieser Header zumindest noch nicht...
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 19:57
Ich sehe das nicht so. An verschiedenen Stellen kann man den Fraunhofer Codecs herunterladen. Einzeln oder in Codecpacks. Mag sein, dass die Angebote nicht alle legal sind. Auf jeden Fall soll der Windows Media Player 10 einen Fraunhofer Codec mitbringen. Desweiteren bietet Thomson kostenlos für "personal and non-commercial" Encoder für MP3Surround an.
http://www.all4mp3.com/tools/sw_fhg_demo.html

Unter http://www.all4mp3.com/music/ gibt es freie Musik. Da könnte Dir der Header auch begegnen.

Der Fraunhofer Codec muss doch begehrt sein: http://shortnews.stern.de/shownews.c...TOKEN=42407016
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
878 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Herausfinden ob mp3 eine vbr oder cbr ist.

  Alt 16. Aug 2006, 20:28
Hmm...auch wenns langsam OT wird, aber das ist mir neu. Gut - so sehr beschäftige ich mich auch nicht damit, welcher Codec nun weiter verbreitet ist, oder häufiger verwendet. Ich nutze zum Rippen den Audiograbber, und da ist Lame dabei
Fakt ist, dass mir noch nicht aufgefallen ist, dass meine Unit signifikant andere Längen liefert als z.B. Winamp oder die Bass.dll nach einem kompletten Scan einer vbr-Datei. Ab und zu kommt mal ne Sekunde zuviel oder zuwenig raus, aber das wird auf Rundungsfehler oder von mir nicht erkannte andere Tags zurückzuführen sein (in vielen mp3s sieht man z.B. im HexEditor lange Bereiche mit gleichen Bytes, nur ab und zu unterbrchen von "LAME"). Werde das aber mal genauer beoachten.

@Mazel: klappts denn nun? Ich hab ja per ICQ mitbekommen, dass du die lgpl nicht so magst, aber zum Erkennen der Bitrate gibts bestimmt auch noch anderswo Code-Schnipsel...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz