Projekte > MPEG-1/2 Video > MPEG-2 Multiplexed Stream

System Header

Der System Header ist optional und in der Regel nur einmal am Anfang des Streams vorhanden. Der Code beginnt wie jeder Code mit dem PACK_START_CODE_PREFIX und wird mit dem Wert $BB identifiziert. Das im Header enthaltene Fixed Flag gibt an, ob der Stream mit konstanter (Standard) oder variabler Bitrate gemuxt wurde. Grundsätzlich unterscheiden sich die System Header von MPEG-1 und MPEG-2 nicht. Bei MPEG-2 gibt es eine optionale Erweiterung.

Aufbau

  • 4 Byte: PACK_START_CODE = $000001BB
  • 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 - Flag für Konstante Bitrate.
  • 1 Bit: CSPS Flag - Flag für Constrained.
  • 1 Bit: System Audio Lock Flag
  • 1 Bit: System Video Lock Flag
  • 1 Bit: Marker
  • 5 Bit: Anzahl der Videospuren
  • 1 Byte: Reserviert, auf $FF gesetzt.
  • 3 Byte, wenn das erste Bit gesetzt ist.
    • 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.

Als Schema

 76543210
0SYSTEM_HEADER_START_CODE
 
$000001BB
1
2
3
4Headerlänge
5
6MarkerMaximale Multiplex Bitrate
7noch Maximale Multiplex Bitrate
8noch Maximale Multiplex BitrateMarker
9Anzahl der AudiospurenFixed FlagCSPS Flag
10Audio LockVideo LockMarkerAnzahl der Videospuren
11Reserved, gesetzt auf $FF.
121Stream ID
13Immer 11P-STD
Buffer
Bound Scale
P-STD Buffer Size Bound
14noch P-STD Buffer Size Bound

Erläuterungen

Die System Audio/Video Lock Flags geben an, ob die Audio Sample Rate und Video Picture Rate in einem konstanten Verhältnis mit der Systemuhrfrequenz des Decoders steht.

Der Multiplex Rate ist die Gesamtbitrate des Streams. Sie wird in 400 Bit je Sekunde angegeben.

Der P-STD Buffer Size gibt an, wieviel Buffer für den betreffenden Stream maximal benötigt wird. Das Flag ist für Audio auf 0 und für Video auf 1 gesetzt. Dies bedeutet, das die Buffergröße entweder in 128 oder in 1024 Bytes Einheiten angegeben ist.

Markerbits dienen dazu, Fehler zu erkennen. Sie müssen immer den Wert 1 besitzen.

Testprogramm

Mit dem folgenden kleinen Testprogramm kann man einen MPEG-2 Stream scannen, die Packs und Streams sowie den Pack Header anzeigen lassen.

MPEG2 Program Test 3 (174 kb) - MD5.
Stand: 26. Mai 2009