Es gibt zwei verschiedene Private Streams. Der Private Stream 1 enthält Nicht MPEG Audio sowie Untertitel und der Private Stream 2 Navigationsdaten. Hier soll nur auf den Private Stream 1 eingegangen werden. Der Aufbau entspricht bis auf zwei Unterschiede dem Video und Audio Header.
Nun folgt die Extension (Erweiterung), welche nur beim Private Stream 1 vorhanden ist.
Ist das Flag für PTS gesetzt, kommen diese 5 Byte hinzu:
Ist das Flag für DTS gesetzt, kommen diese 5 Byte hinzu:
Ist das Flag für ESCR gesetzt, kommen diese 6 Byte hinzu:
Ist das Flag für ES Rate gesetzt, kommen diese 3 Byte hinzu:
Ist das Flag für DSM Trick Mode (nicht bei DVD) gesetzt, kommt dieses Byte hinzu:
Ist das Flag für zusätzliche Copyright Informationen gesetzt, kommt dieses Byte hinzu:
Ist das Flag für CRC gesetzt, kommen diese Byte hinzu:
Ist das Flag für die Extensionen gesetzt, kommt ein Byte mit weiteren Flags hinzu:
Ist das Flag für Private Data gesetzt:
Ist das Flag für den Pack Header gesetzt, kommen diese Bytes hinzu:
Ist das Flag für den Sequence Zähler gesetzt, kommen diese beiden Bytes hinzu:
Ist das Flag für den P-STD Buffer gesetzt, kommen diese beiden Bytes hinzu:
Ist das Flag für die PES Extensionen gesetzt, kommen diese Bytes hinzu:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | PACKET_START_CODE_PREFIX $000001 |
|||||||
| 1 | ||||||||
| 2 | ||||||||
| 3 | Stream ID - Private Stream 1 $BF | |||||||
| 4 | Headerlänge | |||||||
| 5 | ||||||||
Die Extension:
| 6 | 1 | 0 | Scrambled Control | Priorität | Ausrichtg | Copyrigth | Original | |
| 7 | PTS | DTS | ESCR | ES Rate | DSM Trick Mode |
Zusätzl. Copyright |
CRC | Extension Flags |
| 8 | Länge der anschliessenden Headerdaten auf Grund der Flags inkl. Füllbytes. | |||||||
Datenblöcke auf Grund der Flags:
| PTS - Presentation Time Stamp | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 1 | 0 | 0 | 1 | 0 oder 1 | PTS Bit 32-30 | Marker | ||
| 1 | Presentation Time Stamp Bit 29-15 ... | |||||||
| 2 | ... Presentation Time Stamp Bit 29-15 | Marker | ||||||
| 3 | Presentation Time Stamp Bit 14-0 ... | |||||||
| 4 | ... Presentation Time Stamp Bit 14-0 | Marker | ||||||
| DTS - Decoding Time Stamp | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | 0 | 0 | 0 | 1 | DTS Bit 32-30 | Marker | ||
| 1 | Decoding Time Stamp Bit 29-15 ... | |||||||
| 2 | ... Decoding Time Stamp Bit 29-15 | Marker | ||||||
| 3 | Decoding Time Stamp Bit 14-0 ... | |||||||
| 4 | ... Decoding Time Stamp Bit 14-0 | Marker | ||||||
| ESCR - Elementar Stream Clock Reference | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Reserviert | ESCR Bit 32-30 | Marker | ESCR ... | ||||
| 1 | ... Elementar Stream Clock Reference Bit 29-15 ... | |||||||
| 2 | ... Elementar Stream Clock Reference | Marker | ESCR ... | |||||
| 3 | ... Elementar Stream Clock Reference Bit 14-0 ... | |||||||
| 4 | ... Elementar Stream Clock Reference | Marker | ESCR Ext ... | |||||
| 5 | ... Elementar Stream Clock Reference Extension | Marker | ||||||
| ES Rate - Elementar Stream Rate | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Marker | Elementar Stream Rate ... | ||||||
| 1 | ... Elementar Stream Rate ... | |||||||
| 2 | ... Elementar Stream Rate | Marker | ||||||
| DSM Trick Mode | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Trick Mode Control | Field ID | Slice Refresh |
Frequency Truncation |
||||
| Field Repeat Control | ||||||||
| Field ID | Reserviert | |||||||
| Field ID | Slice Refresh |
Frequency Truncation |
||||||
| Zusätzliche Copyright Informationen | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Marker | Copyrigth Informationen | ||||||
| CRC | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | CRC des vorhergegangenen Packets ... | |||||||
| 1 | ... CRC des vorhergegangenen Packets | |||||||
| Extensionen | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Private Data |
Pack Header |
Sequence Zähler |
P-STD Buffer |
Reserviert | PES Ext. |
||
Zu den letzten Flags gehören dann:
| Private Data | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0..15 | PES Private Data | |||||||
| Pack Header | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Länge des folgenden Datenpakets | |||||||
| 1..x | MPEG-1 Pack Header oder MPEG-2 Programm Pack Header | |||||||
| Sequence Zähler | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Marker | Programm Pack Sequence Zähler (einschließlich dieses Packs) | ||||||
| 1 | Marker | MPEG1_MPEG2 Identifikator | Original Stuffing Length | |||||
| P-STD Buffer | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | 0 | 1 | Scale | P-STD Buffer Größe ... | ||||
| 1 | ... P-STD Buffer Größe | |||||||
| PES Extension | ||||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| 0 | Marker | Länge des folgenden Datenfeldes | ||||||
| 1 | Reserviert | |||||||
Bei der Stream ID ist das erste Bit immer gesetzt. Für Video ergibt sich 1110 xxxx und für Audio 1100 xxxx.
Das ersten Bits nach der Länge der Datenstruktur sind immer auf 10 gesetzt. Crambling 00 ist "payload is scrambled", andere Werte sind Nutzerdefiniert. Ist das Ausrichtungsflag gesetzt, folgt dem Header eine Beschreibung dazu. Copyright und Original treffen zu, wenn die Flags gesetzt sind.
Die Headerlänge ist die Länge der Daten ab dem folgenden Byte bis zum Paketende.
PTS, DTS und ESCR sind in 90 kHz Zyklen, die ESCR Erweiterung in 27 MHz Zyklen und die ES Rate in 50 Byte je Sekunde angegeben.
Die Trick Mode Controls sind:
Die Field IDs sind:
Die Frequency Truncation sind:
Beim P-STD Buffer gibt das Scale Flag wieder an, in welcher Einheit der Wert angegeben ist. 0 steht für 128 Byte und 1 für 1024 Byte.
Den Daten können bis zu 32 Füllbytes folgen.

Hier kann das Testprogramm verwendet werden, welches bereits im Kapitel "Video/Audio Packet Header" zum Einsatz kam.
MPEG2 Program Test 4 (178 kb) -
MD5
Stand: 27. Mai 2009
Fr_An - Letzte Änderung: 30. Mai 2009
seit 28. Juli 2010