![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > MP3 VBR Laufzeit berechnen | [ - Search - New posts - Register - Login - ] |
First 2 3 4 5 6 -7- | [ - Post reply - ] |
2005-08-11, 20:55 h David Posts: 65 User |
Zitat: Soll jetzt keine Eigenwerbung oder so sein, soweit man bei Freeware das sagen. Schau dir mal die id3tag.library und id3tagLibGUI an, zu finden auf meiner Homapage und im Internet. -- mfg David http://www.david-mevius.de [ Dieser Beitrag wurde von David am 11.08.2005 um 20:56 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-11, 22:24 h Holger Posts: 8116 User |
Zitat:Klar, denn das LAME-Tag ist eine Erweiterung des Xing-Tags. Da steht nix drin, was Du zu Laufzeitberechnung brauchst, weil das ja sowieso schon im Xing-Teil enthalten ist. Hauptsächlich findet man Informationen zu den verwendeten Optionen und Algorithmen, mit denen das VBR kodiert wurde. Und natürlich Namen+Version des Encoders. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-08-11, 22:40 h Holger Posts: 8116 User |
Zitat:Jein, weiß ja niemand, ob die files tatsächlich automatisch generiert sind. Aber letztendlich könnte ich sie jetzt auch selber generieren. Nur leider zählt die Demo sie bei der Zeilenanzahl mit... Hmm, ma schauen, was die maximale Zeilenlänge ist, die es verkraftet ![]() Zitat:Ich fand auch, daß es so einige Überraschungen besitzt. Allerdings nicht unbedingt im positiven Sinne. Nebenbei, weil Du gefragt hattest: so auf den ersten Blick scheint mir aceBasic wesentlich schneller zu sein. Allerdings werde ich jetzt erstmal vergleichbaren Code produzieren. Und ich hab jetzt den Algorithmus, der auch mit den harten Fällen zurecht kommt: Bei der Suche nach dem ersten Frame, wird die Datei nicht nur nach dem 0xffe..... sync durchsucht, sondern der Mpeg-Header muß auch gültige Bitraten und Frequenz-Indizes besitzen und darf nicht die ungültige Versionskennung %01 haben. (außerdem ist wohl die Kombination Mpeg2.5 und Layer 1 wohl auch nicht erlaubt). Ansonsten wird das Ding einfach als kein Header behandelt und weitergesucht. Sobald ein Header mit gültigen Daten gefunden wurde, wird die Framelänge berechnet und überprüft, ob an der berechneten Stelle auch wirklich der zweite Header beginnt. Wenn nicht ->kein Header, weitersuchen. Wenn man diesen gültigen Header gefunden hat, kann man überprüfen, ob er ein Xing-Tag enthält. Wenn er keinen enthält, hat man die Wahl, ob man von CBR ausgeht, oder die gesamte Datei scannt. Dieser Algorithmus ist für die "normalen" Dateien genauso schnell, wie die bisherige Vorgehensweise, weil er in dem Fall exakt das macht, was der alte Code auch gemacht hat. Aber er kann auch die Härtefälle korrekt handhaben. Bei mir hat's nur bei einer einzigen Datei nicht funktioniert, und die war so kaputt, daß auch keine andere Software sie abspielen kann. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-08-11, 22:49 h Holger Posts: 8116 User |
Zitat:Mach ich doch glatt mal. Basiert die auf dem Referenzcode oder hast Du die komplett eigenfüßig geschrieben? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-08-12, 00:53 h whose Posts: 2156 User |
Zitat: Hehe, die alten Tricks sind doch immer noch die Besten ![]() Der Thread hier wird wirklich immer interessanter, ich bin schon auf die Ergebnisse gespannt ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-08-12, 09:45 h MaikG Posts: 5172 User |
VBRI hab ich eingebaut und noch Fehler korregiert. Nun bin ich beim ID3v2 Tag. Sehe ich das richtig das man da bei jede Datei(z.B. jpeg) im mp3 einzeln die grösse holen muss und dann überspringen? [ - Answer - Quote - Direct link - ] |
2005-08-12, 15:30 h Palgucker Posts: 1342 User |
Ich lese diesen Thread nun auch schon 'ne ganze Weile mit. Wirklich informativ. Habe mir ebenfalls ein Script in Arexx geschrieben, nur um es mal zu probieren. Klappt auch ganz gut - bis auf die Geschwindigkeit, da ich das MP3 nicht in den Speicher lade, sondern sequenziell die "Headerverfolgung" aufgenommen habe. Gestern habe ich mir mal das SundaySuite.mpg aus dem Aminet angeschaut. Während MPEGA und Prayer behaupten, das die Abspieldauer 5:07 ist, hat es aber eine tatsächliche Spieldauer von 6:35. Darauf kommt man aber auch nur, wenn man die Spieldauer jedes Frames ausrechnet und addiert, da sich neben der Bitrate bei diesem File auch die Samplerate ständig ändert. Zum Teil ist die benutzte Samplerate laut Tabelle sogar reserviert, so das ich die letzte gültige Samplerate weiterbenutzt habe. mfg Palgucker [ - Answer - Quote - Direct link - ] |
2005-08-12, 18:57 h David Posts: 65 User |
Zitat: Die Library habe ich komplett eigenhändig geschrieben. mit Internet war eigentlich das Aminet gemeint. -- mfg David http://www.david-mevius.de [ - Answer - Quote - Direct link - ] |
2005-08-12, 23:21 h Holger Posts: 8116 User |
Zitat:Nein, brauchst Du nicht. Die erste Größenangabe bezieht sich den gesamten ID3-Tag. Das ist ähnlich, wie beim IFF-Format, die einzelnen chunks sehen von der Strukur wieder wie das Ganze aus. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-08-12, 23:30 h Holger Posts: 8116 User |
Zitat:Dann ist entweder die Datei oder Dein Programm fehlerhaft. Ich habe schonmal darauf hingewiesen, wenn man die frames nicht korrekt überspringt, kann man im audio-Datenstrom immer wieder bytes finden, die wie mpeg-header aussehen. Deshalb muß man die frames richtig überspringen, und sofort abbrechen, wenn man nicht genau an der Stelle einen Anschlußframe findet, und den Fehler suchen. Zum Punkt "darauf kommt man aber auch nur...": ich würde sagen, auf die korrekte Abspieldauer kommt man, wenn man das file einfach abspielt. Diese Möglichkeit hat man immer. mfg -- Good coders do not comment. What was hard to write should be hard to read too. Nachtrag: Danke für das Beispiel. Jetzt hat jeder, der will, eine Referenz-Datei. Die Datei ist MPEG 2 Layer 3 22050 Hz, variable Bitrate und hat kein Xing-Tag. Damit kann jeder sein Programm testen, es hat nebenbei gesagt gültige header bis zum Ende. [ Dieser Beitrag wurde von Holger am 12.08.2005 um 23:53 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-12, 23:36 h Holger Posts: 8116 User |
Zitat:Bild: http://gprime.net/board/images/smilies/respect.gif Zitat:Schon klar, für Amiganer sind Internet und Aminet doch eh eins ![]() mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2005-08-13, 06:46 h Ralf27 Posts: 2779 User |
Zitat: Die hab ich mir auch gestern mal angesehn, alle Achtung. Sogar mit Bildersupport und allem was dazugehört. Ich wußte gar nicht das es sowas für den Amiga gibt. Hab auch gleich mal eine mp3-Datei mit einem Bild versehn und sie da, AMP kann sie nicht mehr abspielen. Da scheint wohl das ID3-Überspringen nicht richtig zu laufen. Ich war auch erstaunt wieviele Bilder man da reinstellen kann. Das wäre da ja das reinste Bilderbuch. Ich finde es aber schade das wohl kein Amiga-MP3-Player das komplett unterstützt. Und nein, ich werde kein MBasic-MP3-Player schreiben, das will ich euch ersparen (und mir auch). ![]() ![]() ![]() Obwohl es vermutlich möglich wäre, wenn man alle Aufgaben auf die externen Libs verteilt, dann müßte es sogar in Basic möglich sein. Nun, das wäre ganz bestimmt en Hammer. ![]() So, muß jetzt aber langsam wieder ein paar Brötchen verdienen. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-08-13, 06:49 h Ralf27 Posts: 2779 User |
Zitat: Genau das würde ich gerne mal testen. Ich vermute mal das MBasic einen reinen 68000er-Code liefert. Wir müßten halt mal ein kleines Testprogramm schreiben und dann mal sehn was welches Prog als Ergebniss liefert. Wegen Speed bei MBasic: Die Compilieroptionen sind da recht wichtig, gerade auf einem 060er. Das sind die ersten Zeilen hier in den MBasic-Beispielcodes, die die Compileroptionen schalten. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-08-13, 17:08 h MaikG Posts: 5172 User |
>Nein, brauchst Du nicht. Die erste Größenangabe bezieht >sich den gesamten ID3-Tag. Das ist ähnlich, wie beim >IFF-Format, die einzelnen chunks sehen von der Strukur >wieder wie das Ganze aus. An welcher Position steht die noch gleich? Hab gelesen das man die mit 4 Multiplizieren muss wie beim Amiga-exe Header. Komme aber nicht wirklich auf das richtige ergebniss. [ - Answer - Quote - Direct link - ] |
2005-08-13, 18:07 h Palgucker Posts: 1342 User |
@ HolgerZitat: Letzteres. Bei einem erneuten Test ging's wieder, Muss wohl im Eifer des Gefechts irgendwas versaubeutelt haben. @ MaikG Zitat: Du beziehst Dich wohl auf "ID3v2 size 4 * %0xxxxxxx" So wie ich das verstanden habe, sind die Bytes 6-9 (von 0 aus gezählt) gemeint. Aber Du darfst nur die unteren sieben Bits jedes Bytes beachten, und das obere eben "rauswerfen". Dann noch die id3-Taglänge(10 Byte) und eventuell noch die Footerlänge (auch 10 Byte) hinzuzählen. Ob ein Footer vorhanden ist, sagt Dir Bit 4 von Byte 5) mfg Palgucker [ Dieser Beitrag wurde von Palgucker am 13.08.2005 um 18:28 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-13, 18:16 h Holger Posts: 8116 User |
Zitat:Nein, die ist in bytes. Leider ist alles noch viel komplizierter. Siehe http://www.amiga-news.de/forum/thread.php3?id=18244&start=102&BoardID=7 Nachtrag: sieh Dir das Programm in http://www.amiga-news.de/forum/thread.php3?id=18244&start=93&BoardID=7 an, da ist der nötige Code schon enthalten. Position 6, zur der Größenangabe kommt dann noch der Header, also diese 6 bytes und die vier bytes der Größenangabe, macht zehn bytes. mfg [ Dieser Beitrag wurde von Holger am 13.08.2005 um 18:20 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-13, 23:43 h MaikG Posts: 5172 User |
Danke! Mein Programm benötigt für 31 mp3 Dateien, die insgesamt 206 MB gross sind nun 9.8 Sekunden. [ - Answer - Quote - Direct link - ] |
2005-08-15, 00:25 h Holger Posts: 8116 User |
Zitat: Dann will ich Deine Neugier nicht enttäuschen. 21500 Zeichen lange Zeilen schluckt das Programm klaglos. Solchen source-Code kann man natürlich kaum debuggen, deshalb macht das wirklich nur für die automatisch generierten header Sinn. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ Dieser Beitrag wurde von Holger am 15.08.2005 um 00:32 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-15, 01:02 h whose Posts: 2156 User |
@Holger: Das mit dem Debugging ist klar ![]() Aber gut zu wissen, wie viele Zeichen die Demo pro Zeile schluckt, wenn mal wieder solche Themen anstehen und MBasic da eine Rolle spielt. Danke Dir. Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-08-15, 10:09 h gni Posts: 1106 User |
Zitat:Schreib einen Bug-Report an den AMP-Autor. Und wie sieht es bei mpega (den Shell-Tool) aus? [ - Answer - Quote - Direct link - ] |
2005-08-15, 11:56 h Ralf27 Posts: 2779 User |
Zitat:Kann leider kein englisch um sowas schreiben zu können. Mit mpega hab ich das noch nicht getestet. So oder so, das scheint etwas zu sein was zwar recht selten ist, aber leider wohl auch nicht von den Amiga-Playern unterstützt wird. Wäre doch interesant zu sehn was für Bilder in den Audiodateien drin sind und die dann automatisch wärend des abspielens angezeigt werden. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-08-15, 12:49 h whose Posts: 2156 User |
Zitat: Öhm, AmigaAMP stammt doch von Thomas Wenzel, der kann eigentlich sehr gut Deutsch ![]() Zumindest habe ich mich zuletzt auf dem Usertreffen anno 2000 in Wolfenbüttel königlich mit ihm auf Deutsch unterhalten ![]() Naja und die Amplifier-Macher sind auch Deutsche... Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-08-15, 19:26 h Holger Posts: 8116 User |
Zitat:Um Mißverständnissen vorzubeugen: ich habe nicht gesagt, daß da schon Schluß ist. Das war nur die längste Zeile, die in meinem Code vorkam. Ich kann mir auch vorstellen, daß es da gar kein Limit gibt, da der Parser die Spalteposition gar nicht zu verarbeiten scheint. Zumindest habe ich keine Spalteninformationen in den Fehlermeldungen gesehen. Zitat:Die meisten Programme scheinen generell einen Mpeg-Header in den ersten n bytes zu suchen, wobei n eine vom Autor willkürlich festgelegte Anzahl ist. Abspielen funktioniert dann nur noch, wenn das Bild klein genug ist. Ich würde es auch sinnvoll finden, wenn man solche Bilder anzeigen kann. Immerhin gibt's ja auch ein Plugin, mit dem man Bilder anzeigen kann. Das läd allerdings aus einem vorher festgelegtem Verzeichnis ein Bild, das wie Autor o. Album heißt, so vorhanden. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ Dieser Beitrag wurde von Holger am 15.08.2005 um 19:27 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-15, 19:36 h whose Posts: 2156 User |
Zitat: Ah so. Das war dann ein Mistverständnis meinerseits, aber ein positives ![]() Grüße -- --- ![]() ![]() [ - Answer - Quote - Direct link - ] |
2005-08-16, 22:07 h Ralf27 Posts: 2779 User |
Hab eben ACE getestet, also denn freien Amiga Basic Compiler. Und ich mußt tippen das ich überrascht war. Teilweise ist der Code mehr als doppelt so schnell, teilweise aber auch langsamer als MBasic-Code. Vorallem im Integerbereich scheint ACE langsamer als MBasic zu sein und das wobei die meisten Programme wohl Integer sind (jedenfalls bei mir). Ich hab ACE erst mal angetestet, aber MBasic liegt mir da noch etwas besser. Vielleicht kann man mit ACE noch mehr rausholen. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2005-08-16, 23:11 h Holger Posts: 8116 User |
Zitat:Geschwindigkeit ist nicht alles. Interessant fand ich, daß man z.B. wie in meinem ersten Programm in diesem Thread die Basic-Dateioperationen mit DOS-Aufrufen kombinieren kann. ace scheint das etwas "direkteren" Amiga-Code zu generieren. Was liegt Dir nicht? Der Sprachdialekt selber oder das Fehlen des Editors mit direkter Basic-Untersützung? mfg -- Good coders do not comment. What was hard to write should be hard to read too. PS: weiter Diskussionen in diese Richtung vielleicht in einem anderen Thread? [ Dieser Beitrag wurde von Holger am 16.08.2005 um 23:13 Uhr editiert. ] [ - Answer - Quote - Direct link - ] |
2005-08-18, 23:35 h MaikG Posts: 5172 User |
Hab mal im MAS-Player Source geguckt, MPEG2 Layer2+3 stimmen da mit Holgers überein Layer1 steht gar nicht drin überall 0 auch bei MP1 Layer 1 0. [ - Answer - Quote - Direct link - ] |
First 2 3 4 5 6 -7- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > MP3 VBR Laufzeit berechnen | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |