nal_unit_type
NAL : Network Abstraction Layer
NALU Frequently Used
IDR
Instantaneous Decoding Refresh
nal_unit_type = 5SPS
Sequence Parameter Set(序列参数集)
nal_unit_type = 7
包含H.264的profile_idc
和level_idc
等信息.
还有图像的宽高:
pic_width_in_mbs_minus1
pic_height_in_map_units_minus1
Note: 以下为简易公式,仅供示意用:
// pic_width_in_mbs_minus1 本句法元素加 1 后指明图像宽度,以宏块为单位: PicWidthInMbs = pic_width_in_mbs_minus1 + 1 通过这个句法元素解码器可以计算得到亮度分量以像素为单位的图像宽度: PicWidthInSamplesL = PicWidthInMbs * 16
pic_width_in_mbs_minus1 = 21
// pic_height_in_map_units_minus1 本句法元素加 1 后指明图像高度: PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1
pic_height_in_map_units_minus1= 17
分别表示图像的宽和高,
以宏块(16x16)为单位的值减1
因此,实际的宽为(21 + 1) * 16 = 352
PPS
Picture Parameter Set(图像参数集)
nal_unit_type = 8SEI
Supplementary Enhancement Information
nal_unit_type = 6
SEI是H264标准中一个重要的技术,主要起补充和增强的作用。
SEI没有图像数据信息,只是对图像数据信息或者视频流的补充,
有些内容可能对解码有帮助.
Supplemental Enhancement Information (SEI) contains information that is not necessary to decode VCL NAL units.
海康摄像头的RTSP流分析
!!!!!Video nTimeStamp = 1468902463581
, Video nFrameType = 7
[Date: 2016.7.19, Time: 12:27:43:576]
!!!!!Video nTimeStamp =1468902463581
, Video nFrameType = 8
[Date: 2016.7.19, Time: 12:27:43:576]
!!!!!Video nTimeStamp = 1468902463581
, Video nFrameType = 6
[Date: 2016.7.19, Time: 12:27:43:877]
!!!!!Video nTimeStamp = 1468902463581
, Video nFrameType = 5
[Date: 2016.7.19, Time: 12:27:43:878]
!!!!!Video nTimeStamp = 1468902463621, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:152]
!!!!!Video nTimeStamp = 1468902463661, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:210]
!!!!!Video nTimeStamp = 1468902463701, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:220]
!!!!!Video nTimeStamp = 1468902463741, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:253]
!!!!!Video nTimeStamp = 1468902463781, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:258]
!!!!!Video nTimeStamp = 1468902463821, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:268]
!!!!!Video nTimeStamp = 1468902463861, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:273]
!!!!!Video nTimeStamp = 1468902463901, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:279]
!!!!!Video nTimeStamp = 1468902463941, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:287]
!!!!!Video nTimeStamp = 1468902463981, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:293]
!!!!!Video nTimeStamp = 1468902464021, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:310]
!!!!!Video nTimeStamp = 1468902464061, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:317]
!!!!!Video nTimeStamp = 1468902464101, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:327]
!!!!!Video nTimeStamp = 1468902464141, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:333]
!!!!!Video nTimeStamp = 1468902464181, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:340]
!!!!!Video nTimeStamp = 1468902464221, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:351]
!!!!!Video nTimeStamp = 1468902464261, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:357]
!!!!!Video nTimeStamp = 1468902464301, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:381]
!!!!!Video nTimeStamp = 1468902464341, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:429]
!!!!!Video nTimeStamp = 1468902464381, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:449]
!!!!!Video nTimeStamp = 1468902464421, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:479]
!!!!!Video nTimeStamp = 1468902464461, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:537]
!!!!!Video nTimeStamp = 1468902464501, ideo nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:549]
!!!!!Video nTimeStamp = 1468902464541, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:582]
!!!!!Video nTimeStamp = 1468902464581, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:632]
!!!!!Video nTimeStamp = 1468902464621, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:747]
!!!!!Video nTimeStamp = 1468902464661, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:843]
!!!!!Video nTimeStamp = 1468902464701, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:849]
!!!!!Video nTimeStamp = 1468902464741, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:898]
!!!!!Video nTimeStamp = 1468902464781, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:905]
!!!!!Video nTimeStamp = 1468902464821, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:945]
!!!!!Video nTimeStamp = 1468902464861, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:973]
!!!!!Video nTimeStamp = 1468902464901, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:44:983]
!!!!!Video nTimeStamp = 1468902464941, sec = 1468902464, usec=941077, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:45]
!!!!!Video nTimeStamp = 1468902464981, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:146]
!!!!!Video nTimeStamp = 1468902465021, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:199]
!!!!!Video nTimeStamp = 1468902465061, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:205]
!!!!!Video nTimeStamp = 1468902465101, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:258]
!!!!!Video nTimeStamp = 1468902465141, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:45:307]
!!!!!Video nTimeStamp = 1468902465181, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:188]
!!!!!Video nTimeStamp = 1468902465221, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:233]
!!!!!Video nTimeStamp = 1468902465261, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:235]
!!!!!Video nTimeStamp = 1468902465301, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:272]
!!!!!Video nTimeStamp = 1468902465341, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:279]
!!!!!Video nTimeStamp = 1468902465381, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:284]
!!!!!Video nTimeStamp = 1468902465421, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:302]
!!!!!Video nTimeStamp = 1468902465461, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:313]
!!!!!Video nTimeStamp = 1468902465501, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:336]
!!!!!Video nTimeStamp = 1468902465541, Video nFrameType = 1
[Date: 2016.7.19, Time: 12:27:46:340]
!!!!!Video nTimeStamp = 1468902465581
, Video nFrameType =7
[Date: 2016.7.19, Time: 12:27:46:341]
!!!!!Video nTimeStamp = 1468902465581
, Video nFrameType = 8
[Date: 2016.7.19, Time: 12:27:46:341]
!!!!!Video nTimeStamp = 1468902465581
, Video nFrameType = 6
[Date: 2016.7.19, Time: 12:27:46:697]
!!!!!Video nTimeStamp = 1468902465581
, Video nFrameType = 5
[Date: 2016.7.19, Time: 12:27:46:747]
!!!!!Video nTimeStamp = 1468902465621, Video nFrameType = 1
可看出发送流的次序为7->8->6->5->1...1->7->8->6->5->1...1->7
并且SPS & PPS & SEI & IDR 的时间戳相同.
References:
ISO_IEC_14496-10_2003_Advanced Video Coding
http://blog.sina.com.cn/s/blog_4c2bf01a010122xn.html
http://blog.sina.com.cn/s/blog_6f49696d01019au5.html
http://iphome.hhi.de/wiegand/assets/pdfs/DIC_H264_07.pdf