Перейти к основному содержанию
Помощь

Оригинальный сообщение: Gambrius ,

Текст:

Hallo,

habe nach einiger Zeit mir die Sprungmarken, und die Definition des Ogg Standards mal wieder angesehen. Habe festgestellt, dass die “Sprungmarken”, die ich im Bereich I vermutet habe, sogenannte “page sequence numbers” sind.

Ein Ogg Stream ist in sogenannte Pages unterteilt, die jeweils min. 4kb groß sind (das erklärt auch die min. 4kb Größe bei ganz kurzen Kreativtonie-Audiodateien). Jede Page fängt mit den “Magic numbers” “4F 67 67 53” an, welches den Text “OggS” darstellt.

Die “Page Sequence Number” ist immer im Bereich 15 bis 18 Bytes nach der “Magic Number” zu finden. Jedoch ist anhand der “Page Sequence Number” nicht die Laufzeit bis zur Sprungmarke ersichtlich, da die einzelnen Pages unterschiedlich lang / groß sein können.

Jedoch wird im Bereich 3 bis 10 Bytes nach der “Magic Number” die “Granule Position” genannt, welche die Anzahl der Samples bis zu dieser Page darstellt. Teilt man den Wert der “Granule Position” geteilt durch 48.000 (48kHz Sampling rate), erhält man den Sekundenwert der Sprungmarke.

Die jeweiligen Werte “page Sequence Number” und “Granule Position” sind jeweils im LSB Style gespeichert und der rest des Bereichs mit “00” aufgefüllt.

Der Standard beschreibt ebenfalls, dass die erste “Page Number Sequence” immer den Wert 0 haben muss. Dieses  habe ich weiter oben als Bereich I-1 bezeichnet. Damit wäre bestätigt, dass dieses den Beginn des ersten Tracks, also die “Page Sequence Number” 0 darstellt.

Wie ich im Vorfeld bereits durch versuche herausgefunden haben, können diese Sprungmarken einfach gelöscht, ergänzt oder verändert werden, da diese nicht durch eine Prüfsumme im Header verankert sind.

Gruß,[br]

Gambrius

Статус:

open