Projekte > MPEG-1/2 Video > Packet Video Audio

Payload

Video

In den Video Paketen steckt ein elementarer Videostream. Ist im AV Header das PTS_Flag gesetzt, ist im Payload ein Presentation Time Stamp enthalten. Dieser Time Stamp weicht jedoch etwas von dem im PES oder PS ab. Anstelle von 33 Bit ist er nur 32 Bit lang und enthält keine Marker. Der PTS wird in 90 kHz-Zyklen angegeben. Darauf folgt ein Startcode. Nach meinen Beobachtungen ist dies ein Sequence_Start_Code $000001B3 oder ein Picture_Start_Code $00000100.

Die PreBytes im AVHeader sollen eigentlich angeben, an welcher Stelle sich der PTS befindet. In der Praxis werden damit anscheinend die Füllbytes zwischen PTS und den Nutzdaten im Payload angegeben. In einigen dieser Samples sind dies tatsächlich Füllbytes. In anderen folgt der Start Code trotzdem direkt auf den PTS.

 76543210
0PTS - Presentation Time Stamp
1
2
3
4START_CODE
 
$000001
5
6

Audio

In den Audio Paketen steckt ein Packetized Elementary Stream (PES). Das PTS_Flag signalisiert den Start eines neuen Paketes.

PES Header

  • 3 Byte: START_CODE = $000001
  • 1 Byte: StreamID (hier $BD, $C0..$DF)
  • 2 Byte: PES Length

Als Schema

 76543210
0START_CODE
 
$000001
1
2
3Stream ID
4PES Length

Der Rest entspricht dem wie hier beschrieben.

Testprogramm

Packet Video Audio Stream auf Payload scannen. Der PES-Header wird nur teilweise angezeigt.

PVA_Test_03 (166 kb), MD5 (1 kb).
Stand: 17. September 2009.