Detailfragen zu Transport-Streams

  • Ähm, jein ...

    Dateiendungen sind Dateiendungen. Wenn ich eine Datei umbenenne, bekommt sie eine andere Endung; dadurch ändert sich aber der Inhalt keineswegs. Ich könnte auch einer Textdatei die Endung .vob geben. Wäre natürlich Unfug, ist aber möglich.

    Wenn wir davon ausgehen, dass alle MPEG-1/2-Program-Streams "üblicherweise" *.mpg oder *.mpeg genannt werden, so dass man sich in etwa darauf verlassen könnte, dann könnten wir aus der Dateiendung auch wieder auf den Inhalt schließen.

    Unter dieser Voraussetzung dürfen nur spezielle MPEG-PS-Dateien *.vob genannt werden - nämlich nur solche, die von einem DVD-Authoring-Tool erstellt wurden, und einen Bezug zu ähnlich benannten IFO- und BUP-Dateien haben.

    VOB-Dateien enthalten neben den MPEG2-Video-, eventuell MP2-Audio-, und allgemeinen MPEG2-System-Daten (wie sie auch in "MPG-Dateien" möglich sind) zusätzlich noch spezielle Navigationshilfen für DVD-Player, und meist auch AC3- und evtl. dts-Tonspuren im Private Stream 2, was bei "normalen MPG-Dateien" eigentlich nicht vorgesehen ist. Die DVD-Spezifikationen erweitern den MPEG2-Standard in einigen Bereichen. Außerdem hat ein VOB-Paket immer 2048 Bytes (die Größe eines DVD-Sektors); MPG-Dateien, wie sie auf SVCD üblich waren, hatten beispielsweise größere Pakete (2352 Bytes), und wer weiß, welche Regeln für andere mehr oder (eher) weniger verbreitete Formate üblich sein könnten.

  • Danke für euren Antworten. Eine andere Frage: Gibt es eine Möglichkeit im MPEG PS zuerkennen wieviele Audiospuren und Untertitel vorhanden ist?
    Ich meine sowas etwa wie bie MPEG TS das PMT. dort kann man ja anhand der PIDs erkennen welche Vidoe und Audiospuren in den Paketen enthalten sind. Also so das man nicht erst das ganze Datei durchsucht und dadurch es erkennt

  • Bei VOB-Dateien schaut man in die IFO-Datei.

    Bei allgemeinen MPEG-PS ist das in der Art nicht geregelt, soweit ich weiß. Da wird einem nichts anderes übrigbleiben, als die Datei zu scannen und auf die Verwendung der Videospuren, PCM- und MPA-Audiospuren zu achten. Digitalausgabe-Tonspuren (AC3, dts) im Private Stream 2 sind "theoretisch" nicht zu erwarten; allerdings kommt es wohl hin und wieder vor, dass MPEG2- und DVD-Spezifikationen auch bei sonst spezifikationslosen Dateien mal gemischt gelten...

  • Die Anzahl der Audio- und Videospuren stehen im Systemheader. Da wurden meines Wissens sogar die Audiospuren aus den Private Streams mitgezählt.

    3 Byte: PACK_START_CODE $000001
    1 Byte: SYSTEM_HEADER_ID $BB
    2 Byte: Headerlänge
    1 Bit: Marker
    22 Bit: Maximale Multiplex Bitrate aus allem Streams
    1 Bit: Marker
    6 Bit: Anzahl der Audiospuren
    1 Bit: Fixed Flag
    1 Bit: CSPS Flag
    1 Bit: System Audio Lock Flag
    1 Bit: System Video Lock Flag
    1 Bit: Marker
    5 Bit: Anzahl der Videospuren

    Gruß Frank

  • Danke Frank, aber ich weiss zwar wieviele Audio und video spuren im MPES PS enthalten ist. Ich habe immer noch zwei problem.
    Erstens ich weiss nicht ob die in Private stream stecken und zweitens kenne ich die Kennung nicht also Stream ID für PES.

  • Zumindest für die Streams, welche nicht im Private Stream stecken, kannst Du im System Header weiterlesen. Es folgen

    1 Byte: Reserviert, auf $FF gesetzt.
    3 Byte, wenn das erste Bit gesetzt ist.

    Diese 3 Byte sind dann:
    1 Byte: Stream ID - Sie beginnt immer mit 1, zum Beispiel 110x xxxx Audio, 1110 xxxx Video.
    2 Bit: Immer auf 11 gesetzt.
    1 Bit: P-STD Buffer Bound Scale. 0 für Audio, 1 für Video.
    13 Bit: P-STD Buffer Size Bound.

    Gilt nur für MPEG-2. Bei MPEG-1 gibt es diese Tabelle wohl nicht. Habe ich zumindest nicht kontrolliert.

    Bei Private Streams musst Du Dir vermutlich den Inhalt ansehen. Tonspuren sind nur im Private Stream 1 ($BD) und das erste Byte des Inhalts gibt den Type und die ID an.

    Gruß Frank

Jetzt mitmachen!

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