M3D-Format

Aus PyroNeo Wiki
Version vom 1. Juli 2011, 18:19 Uhr von Admin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Das Audiomodul wäre zwar in der Lage, MP3-Dateien auch ohne Konvertierung abzuspielen, dies bringt jedoch das Problem mit sich, dass bei einer abrupten Ände…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Das Audiomodul wäre zwar in der Lage, MP3-Dateien auch ohne Konvertierung abzuspielen, dies bringt jedoch das Problem mit sich, dass bei einer abrupten Änderung der Showzeit z.B. ein Fortsetzen der Show an einer anderen Stelle nach einer Störung (Stromausfall etc) die exakte Position für die Fortsetzung der Musik innerhalb der Datei nicht angesprungen werden könnte. Daher kann mit dem Audiomodul nur das M3D-Format, eine um zusätzliche Informationen ergänzte MP3-Datei, abgespielt werden. Dieses Format behebt die angesprochene Schwäche des MP3-Formats und erlaubt ein wahlfreies Springen innerhalb der Musik auf ca. 25 Millisekunden genau.

Technischer Hintergrund

Aufbau einer MP3-Datei

Eine MP3-Datei besteht aus sogenannten Frames. Jeder Frame enthält Audioinformationen einer bestimmten Länge, beim MPEG 1, Layer 3-Format sind das je nach Sampling-Rate 24 oder 26,1 Millisekunden. Jeder Frame ist (mehr oder weniger) ohne die vorherigen Frames der Datei abspielbar, so dass ein Wiedereinsetzen innerhalb der Datei innerhalb von +/- ca. 25 Millisekunden kein Problem darstellt. Ein größeres Problem ist es, die korrekte Position innerhalb der Datei aufzufinden. Die Frames enthalten keinerlei Information darüber, an welcher zeitlichen Position innerhalb der Datei sie abgespielt werden müssen. Die Tatsache, dass jeder Frame - je nach Bitrate bei VBR - unterschiedlich lang sein kann, erschwert das Auffinden der korrekten Abspielposition innerhalb der Datei zusätzlich. Um die korrekte Position zu finden, müsste die Datei letztendlich also von vorne beginnend durchsucht werden. Jeder Frame müsste gelesen und analysiert werden, um die Abspielzeit des jeweils nächsten Frames korrekt ermitteln zu können. Dies würde einem "schnellen Vorspulen" innerhalb der Datei gleichkommen und bei einer maximalen Datenrate für das lesen der MP3-Dateien bei z.B. einer 15-minütigen MP3 mit 128 kBit/Sekunde ca. 36 Sekunden dauern - und das nur für einen einzigen Sprung! Für ein Feuerwerk wäre eine Sprungdauer von unter einer Sekunde vielleicht gerade noch akzeptabel - 36 Sekunden machen diese Methode jedoch absolut unmöglich.

M3D-Format

Damit das Audiomodul die Informationen über einen Sprung auch nicht vor der Show in der oben genannten Zeit aus den Dateiinformationen auslesen und sich merken muss, wird genau diese Information über die Position der einzelnen Frames innerhalb der Datei im M3D-Format vor die eigentlichen Musikdaten geschrieben. Den MP3-Daten wird also ein aus den Musikdaten berechneter "Bootstrap-Bereich" hinzugefügt, der es ermöglicht jeden Frame innerhalb von unter einer Millisekunde aufzufinden.

Hier fehlt die folgende Information. Bitte ergänze die Informationen und entferne anschließend diese Markierung:
Format hinzufügen