• Hi, kennt jemand einen Link/Dokument das die Struktur der I, P und B-frame Header beschreibt ?
    Ich schätze mal das die Header ähnlich wie die bei AVC oder AAC sind ...
    Nur nirgents finde ich was über mpeg-4 (a)sp.

  • Für MPEG4-Strukturen brauchst du wohl eigentlich den ISO/IEC-Standard 14496. Offiziell kostet der relativ viel. Aber vermutlich gibt es irgendwo Kopien davon...

    MPEG1 = ISO/IEC 11172
    MPEG2 = ISO/IEC 13818
    MPEG4 = ISO/IEC 14496

  • Ich suche den Header Aufbau der I, P und B Frames um per Hex-Editor zu schneiden (bzw. zu recovern). Sprich nach welchem Bit (hex) Muster muß ich suchen was mir ein I-Frame beispielsweise markiert.

  • Dazu solltest du einerseits Picture-Start-Codes kennen, andererseits die GOP-Tabelle, die beschreibt, in welcher Reihenfolge die Frames gespeichert sind (weil die Speicher-Reihenfolge nicht mit der Anzeige-Reihenfolge übereinstimmt), und welches Picture in einer GOP welche Abhängigkeiten hat ... aber nach dem Schneiden müsstest du für deine Kopie eventuell eine neue GOP aufbauen, vor allem für GOPs, die mal mit einem B-Frame begonnen hatten. Trivial ist das nicht, denn eine GOP enthält noch weitere Informationen, die zum Abspielen relevant sind.

    Zumindest war das so bei MPEG-2. MPEG-4 hat etwas ähnliches, die wird hier GOV genannt. Ich vermute aber, dass sie den gleichen Zweck erfüllt.

  • Tja, nur leider bezieht sich die Doku des Mr. Graft in punkto mpeg-4 auf AVC und nicht auf ASP.

    LigH. Ich habe bis jetzt eigentlich immer angenommen das ein GOV/GOP immer mit einem I-Frame anfängt da bei ASP keine Referenzen darüber hinaus gemacht werden dürfen ...

    Ich weiß zwar nicht welchen Sinn es hat P oder B Frames vor das I-frame zu setzen, doch auch dann müßte es ein Referenz-Feld geben.

    Wie auch immer, dazu müßte es doch eine verwetbare Doku geben. Oder wie wurde sonst der Xvid gebaut ?

    Das Problem bei den meisten Dokus ist das sie hauptsächlich den encodig-process schematisch beschreiben aber nicht wie die Daten gespeichert werden.
    Ja, natürlich steht da es gibt I/P/B Frames aber einen (schematischen) Aufbau mit Header/Body hab ich bis jetzt noch nicht gefunden. Zumindest nicht für ASP. Für AVC gibt's da schon mehr ...

    Ich meine: z.B. ein I-Frame brauch einen Header - und wenn er nur aus ein paar Bytes besteht ähnlich wie bei mp3/AAC - das es als solches kennzeichnet. Dazu gesellen sich warscheinlich noch ein paar optionen bevor die "eigentlichen Daten" kommen.
    Um diese besagten Header der I/P/B Frames geht es mir. Die braucht man um einen Demuxer/Parser zu bauen

    Einmal editiert, zuletzt von may24 (10. Dezember 2009 um 18:14)

  • Bei MPEG-1 und MPEG-2 gab es nur Startcodes der Form "Hier beginnt ein Picture (bzw. Slice)". Daran konnte man nicht erkennen, ob es ein (Teil eines) I-, P- oder B-Frame ist. Diese Information wurde vorher in einer Tabelle in der GOP gespeichert, bevor die zur GOP gehörigen Frames folgten.

    Bei MPEG-4 heißt das ganze genauer: "Group of Video Object Plane"; Tabelle 6.2.4 ist der Beginn der Pseudo-C-Syntaxbeschreibung dieser Felder, die für dich von Interesse sind. Daran, dass die Beschreibung mit 3D-Objekten beginnt, kannst du schon erkennen, wie komplex bereits der gesamte MPEG4-Standard geplant wurde, auch weit über ASP und AVC hinaus.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!