从零开始写一个发送h264的rtsp服务器(下)
从零开始写一个发送h264的rtsp服务器(下) 一、H264是如何通过rtsp发送的 简单来说,H264就是通过打包到rtp协议的数据部分发送出去的。 H264打包成rtp数据包有三种方式 单一封包模式 组合封包模式 分片模式 要想弄明白这三种打包方式,必须先弄清楚h264的组成结构,或者叫组成单元。 二、H264结构单元 H264数据流最基本的结构单元叫nalu单元。 H264的nalu单元组成: [start code] + [nalu header] + [nalu paload] start code: 可以为 001 或者 0001, 也就是点3个字节或者4个字节 nalu header: 占一个字节 nalu paload: 长度不定 每一帧画面拥有一个或多个nalu单元,每个nalu单元以start code进行分离 nalu header nalu header占一个字节,它又分了三个部分:F,NRI,TYPE 7 6-5 4-0 F NRI TYPE F:一般为0 NRI:指示nalu单元的重要性,不同编码器编出来的H264数据不同 TYPE:nalu类型 TYPE类型: 类型 定义 0 未定义 1-23 NAL单元 24 STAP-A 单一时间组合包 25 STAP-B 单一时间组合包 26 MTAP-16 多个时间组合包 27 MTAP-24 多个时间组合包