47 40 45 30 07 10 87 14 3E 61 FE 00 00 00 01 E0 35 93 80 C0 0A 39 38 A7 06 75 19 38 A7 06 75 00 00 00 01 09 10 00 00 00 01 67 4D 40 29 E9 80 A0 0B 76 02 20 00 01 F4 80 00 EA 9C 13 E3 86 27 00 00 00 01 68 FE 32 48 00 00 00 01 06 00 01 C0 80 00 00 00 01 06 01 01 04 80 00 00 00 01 41 88 80 10 6F F3 83 62 ED 5F 32 BE 03 FF 74 45 7C A3 FE 0F 76 3C A8 BE 65 8A BD CC 00 00 03 00 00 03 00 00 03 00 00 03 00 0D 75 34 BA 90 F1 6E D2 E3 F4 00 00 03 00 00 03 00 76 00 01 0C 00 3B E5 09 40 85 3F 56 42 87 23 D5 14 2B 4A A7 7C 39 5C 15 A6 A6 A2 D0 C3 BC 24 98 96 27 27 13 B0
以下全部按二进制分析:
80 = 10 00 0 0 0 0 :
10 (固定值),
00 PES_scrambling_control,
0 PES_priority
0 data_alignment_indicator ,
0 copyright ,
0 original_or_copy
(data_alignment_indicator 0 包头后没有填充)
C0 = 1100 0000 (7 flags)
11 PTS_DTS_flags
0 ESCR_flag ,
0 ES_rate_flag ,
0 DSM_trick_mode_flag ,
0 additional_copy_info_flag ,
0 PES_CRC_flag ,
0 PES_extension_flag ,
PTS_DTS_flags
00,表示无PTS无DTS;
01,错误,不能只有DTS没有PTS;
10,有PTS;
11,说明既有PTS又有DTS,本例中为11,既有PTS又有DTS
0A PES_header_data_length 10 字节,由任选字节(也就是下面的扩展域)和任意填充字节构成的长度。 前5个字节是PTS,后5个字节是DTS
39 = 0011 1001
0011 (固定值),表示PTS
100( PTS[32-30]))
1 标记位,赋值1
38 A7 = 0011 1000 1010 0111
00111000101001(PTS[29-15])1 标记位 赋值1 意义不明
06 75 = 0000 0110 0111 0101
000001100111010(PTS[14-0]) 1 标记位 赋值1 意义不明
所以PTS = 100001110001010011000001100111010(即粉色拼接起来的二进制)
即PTS = 4532568890(十进制)
DTS与之类似,19 38 A7 06 75
其中19 = 0001 1001,
0001 标识位,标识DTS
总结如下图