This branch is up to date with MeloQi/streams:master .
Folders and files Name Name Last commit message
Last commit date
parent directory Sep 9, 2019
Apr 19, 2020
Apr 20, 2020
Mar 29, 2019
Apr 19, 2020
Apr 20, 2020
Mar 19, 2019
View all files
一帧原始数据只能包含一个ps
, map
,sys
(关键帧需要)等结构.当一帧数据超过pes最大的负载时(0xFFFF
),则一帧数据可能有多个pes
结构
rtp结构是包含在封装的最外层,所以 一帧数据或者一片pes结构,可能会被分成多个rtp包
各个结构中可能都有扩充字段,在解析的时候可以通过扩充字段来解析到表示的长度,从而得到真实的原始数据的长度
| ps | system header | psm | pesv | pesa |
pesv
为视频pes包, pesa
为音频pes包
非关键帧的ps包结构一般不包含系统头和PSM
针对PSM中流类型的取值如下:
流类型
十六进制值
MPEG-4
0x10
H.264
0x1B
SVAC
0x80
G.711
0x90
G.722.1
0x92
G.723.1
0x93
G.729
0x99
SVAC 音频
0x9B
具体可以参看ISO/IEC 13818-1:2000
字段名
比特位长度
含义
pack_start_code
32
起始码字段0x000001BA
标志为一包的开始
marker_bit
2
标记位字段2位字段,取值01
system_clock_reference_base (32..30)
3
系统时钟参考字段
marker_bit
1
标记位字段取值1
system_clock_reference_base(29..15)
15
系统时钟参考字段
marker_bit
1
标记位字段取值1
system_clock_reference_base(14..0)
15
系统时钟参考字段
marker_bit
1
标记位字段取值1
system_clock_reference_extension
9
系统始终参考字段
marker_bit
1
标记位字段取值1
program_mux_rate
22
节目复合速率字段
marker_bit
1
标记記位字段取值1
marker_bit
1
标记位字段取值1
reserved
5
填充字段
pack_stuffing_length
3
包填充长度字段
字段名
比特位长度
含义
system_header_start_code
32
开始码 0x000001BB
header_length
16
該字段後的系統標題的字節長度
marker_bit
1
标记位字段取值1
rate_bound
22
速率界限字段
marker_bit
1
标记位字段取值1
audio_bound
6
音频界限字段
fixed_flag
1
固定标志字段
CSPS_flag
1
CSPS标志字段
system_audio_lock_flag
1
系統音频锁定标志字段
system_video_lock_flag
1
系統视频锁定标志字段
marker_bit
1
标记位字段取值1
vedio_bound
5
视频界限字段
packet_rate_restriction_flag
1
分组速率限制标记字段
reserved_bits
7
保留位字段
stream_id
8
流标志字段 一般0xe0
指视频,0xc0
音频
marker_bit
2
取值11
P-STD_buffer_bound_scale
1b
P-STD界限比例字段
P-STD_buffer_size_bound
13
P-STD大小界限字段
注:可能会有多个stream , 通过stream_id的第一个bit判断是否存在stream
字段名
比特位长度
含义
packet start code
32
映射流起始码标志字段
program stream map length
16
节目流映射长度字段
current_next_indicator
1
当前下一個指示符字段
reserved
2
填充字段
program_stream_map_version
5
节目流映射版本字段
reserved
7
预留填充字段
marker_bit
1
标记位字段取值1
program_stream_info_length
16
节目流信息长度字段
elementary_stream_map_length
16
基本流映射长度字段
stream_type
8
流类型字段 0x1b H264
, 0x24 H265
elementary_stream_id
8
视频取值0xe0-0xef
,通常为0xe0
,音频取值0xc0-0xdf
,通常为0xc0
elementary_stream_info_length
16
基本流信息长度字段
CRC_32
32
CRC字段
字段名
比特位长度
含义
packet_start_code_prefix
24
分组起码码0x000001
stream_id
8
流标志字段stream_id,其中0x(C0DF)指音频,0x(E0EF)视频
PES_packet_length
16
PES分组长度字段
marker_bit
2
标志位,10
PES_scrambling_control
2
PES加扰控制字段
PES_priority
1
PES优先级字段
data_alignment_indicator
1
数据对其指示符字段
copyright
1
盘权字段
original_or_copy
1
原始或拷贝字段
PTS_DTS_flags
2
PTS DTS
标志字段
ESCR_flag
1
ESCR标志字段
ES_rate_flag
1
ES速率标志字段
DSM_trick_mode_flag
1
DSM特技方式标志字段
additional_copy_info_flag
1
附加版权信息标志字段
PES_CRC_flag
1
PES CRC标志字段
PES_extension_flag
1
PES扩张标志字段
PES_header_data_length
8
PES标题数据长度字段
注:后面会根据此长度来填写 pts, dts等
You can’t perform that action at this time.