我们在一般在gb28181发送码流选择PS流,PS流再封装H264的数据。那么如何封装PS流,PS流如何封装H264呢?
本文详细描述如何通过PS流解析H264码流。
先研究下PSM(节目流映射),PSM头定义如下:
这里找了一个标准的PS流里面的PSM数据进行研究分析:
packet_start_code_prefix—24bit :00 00 01。
map_stream_id-8bit:BC。
program_stream_map_length-16bit:00 5A ----->90 此字段含义为紧随此字段还有90个字节,通过计算每行16*5+10=90,正确。
current_next_indicator—1bit:--->1 置于1时指示发送的节目流映射为当前有效。置于0它指示发送的节目流映射尚未有效并且下一个节目流映射表将生效。
reserved-2bit:---->11 预留位。
program_stream_map_version-5bit:--00000 整个节目流映射的版本号,每当节目流映射的定义改变时,该版本号必须增。
1模32,current_next_indicator置为1时,为当前有效的节