http://blog.youkuaiyun.com/nine_locks/article/details/47188251
版权声明:本文为博主原创文章,未经博主允许不得转载。
| packet_start_code_prefix(24) | 开始码字为0X00 00 01 |
| stream_id(8) | 原始流的类型和数目,取值从1011 1100到1111 1111之间。各值含义具体见13818-1。 |
| PES_packet_length(16) | 表示从此字节之后PES包长(单位字节)。0表示PES包长不限制,且只能用于视频PES。 |
| 10 | 填充字节。 |
| PES_scrambling_control(2) | PES有效负载的加密模式。00表示不加密,其余表示用户自定义。 |
| PES_priority(1) | PES数据包的优先级。类似于TS的此字段。 |
| data_alignment_indicator(1) | 为1时,表明此分组头部之后紧跟着 数据流描述子中定义的访问单元类型。 |
| copyright(1) | 版权,1表示有版权,具体见版权描述子13818-1 1-2-6-24。0表示没有。 |
| original_or_copy(1) | 1表示原始数据,0表示备份 |
| PTS_DTS_flag(2) | 10表示含有PTS字段,11表示含有PTS和DTS字段,00表示不含有PTS和DTS,01无定义。 |
| ESCR_flag(1) | 1表示ESCR在PES首部出现,0表示不出现 |
| ES_rate_flag(1) | 1表示PES分组含有ES_rate字段。0表示不含有。 |
| DSM_trick_mode_flag(1) | 1表示有8位的trick_mode_flag字段,0表示不出现此字段。只对DSM有效。在广播中不用。 |
| additional_copy_info_flag(1) | 1表示有copy_info_flag字段,0表示不出现此字段。 |
| PES_CRC_flag(1) | 1表示PES分组中有CRC字段,0表示不出现此字段。 |
| PES_extention_flag(1) | 1表示扩展字段在PES包头存在,0表示扩展字段不存在 |
| PES_header_data_length(8) | 表示可选字段和填充字段所占的字节数。 |
| 0010 | 0010填充字段,表示只含有PTS,不含有DTS 当含有DTS时,这个填充字段为0011
PTS字段。 |
| PTS[32…30](3) | |
| marker_bit(1) | |
| PTS[29…15](15) | |
| marker_bit(1) | |
| PTS[14…0](15) | |
| marker_bit(1) | |
| 0001 | 0001填充字段,表示接下来为DTS。
DTS数据解码时间 |
| DTS[32…30](3) | |
| marker_bit(1) | |
| DTS[29…15](15) | |
| marker_bit(1) | |
| DTS[14…0](15) | |
| marker_bit(1) | |
| reserved(2) | 填充字段
基本系统参考时间,和扩展系统参考时间。 |
| ESCR_base[32…30](3) | |
| marker_bit(1) | |
| ESCR_base[29…15](15) | |
| marker_bit(1) | |
| ESCR_base[14…0](15) | |
| marker_bit(1) | |
| ESCR_extention(9) | |
| marker_bit(1) | |
| marker_bit(1) | 表示系统解码器从PES分组中接收字节的速度。以50B/s为单位,有传送的作用。 |
| ES_rate(22) | |
| marker_bit(1) | |
| trick_mode_control(3) | 特技模式,比如快进,快退。具体见13818-1 |
| field_id(2) | 表示在特技模式中,哪些场将被显示。00表示仅显示顶场,01表示仅显示底场,10表示显示全帧。11保留。 1表示编码间隙中可能丢失宏块,0表示不会丢失宏块。丢失宏块用前面已解码的图像宏块代替。 编码的受限系数集,表示DCT后系统的非零限制,具体见13818-1 |
| intra_slice_refresh(1) | |
| frequency_trunction(2) | |
| field_rep_cntrl(5) | 隔行扫描中首场和底场显示顺序。 |
| reserved(3) | 填充 |
| marker_bit(1) | 填充 |
| additional_copy_info(7) | 包含和版权有关的私用数据 |
| previous_PES_packet_CRC(16) | CRC校验PES包数据(不包括包头) |
| PES_private_data_flag(1) | 1表示PES包首部中含有私用数据,0表示没有。 |
| pack_head_field_flag(1) | 1表示PES首部含有一个ISO/IEC 11172的组首部。0表示PES首部没有含有组首部。 |
| program_packet_sequence_counter_flag(1) | 1表示PES分组含program packet sequence counter和字段,0表示不含有。 |
| P-STD_buffer_flag(1) |
|
| reserved(3) | 填充 |
| PES_extention_flag_2(1) | 1表示出现PES_extention_flied及相关字段。0表示不出现。 |
| PES_private_data(128) | 私用数据 |
| pack_field_length(8) | 指示pack_header_field()字节长度。 |
| marker_bit(1) |
|
| program_packet_sequence_counter(7) | 计数器,到0后重新计数,计算PES分组的数量。 |
| marker_bit(1) |
|
| MPEG1_MPEG2_identifier(1) | 1表示PES分组带有ISO/IEC 11172-1系统信息,0代表带有PS流信息。 |
| original_stuff_length(6) |
|
| 01 |
|
| P-STD_buffer_scale(1) | 联合使用控制BSn缓冲区的大小,具体定义见13818-1。仅用于PS流中。 |
| P-STD_buffer_size(13) | |
| marker_bit(1) |
|
| PES_extention_field_length(7) | 规定此字段之后的扩展(填充)字段长度(单位字节) |
| reserved(8) | 保留位8位 |
| stuffing_byte(8) | 填充字段。1111 1111 |
| PES_packet_data_byte(8) | PES包原始流数据长度,等于PES_packet _length减去从PES_packet_length到此字段之前的长度。 |
| padding_byte(8) | 填充字段。1111 1111 |
-
顶
-
踩
本文详细解析了MPEG PES(Packetized Elementary Stream)包头的各个字段及其作用,包括开始码、流ID、PES包长度等,并解释了如PTS/DTS标志、加密控制、优先级等字段的具体含义。
21万+

被折叠的 条评论
为什么被折叠?



