H264 RTP负载格式中文说明 —— H264 RTP Payload Format

### H264 RTP负载格式详解 #### 一、引言 H264编码标准是一种广泛应用于视频压缩领域的高效编码技术,而RTP(Real-time Transport Protocol)则是用于传输实时音频/视频的标准协议之一。将H264编码后的视频数据通过RTP进行传输时,需要对视频数据进行特定的封装,即所谓的“负载格式”。本文旨在详细介绍H264 RTP负载格式的相关知识点,帮助初学者快速理解其核心概念,并为深入研究打下基础。 #### 二、网络抽象层单元类型(NALU) ##### 1. NALU概述 NALU(Network Abstraction Layer Unit),即网络抽象层单元,是H264编码标准中的一个重要概念。在H264编码过程中,编码后的数据会被分割成一系列的NALU,每个NALU都包含了一个或多个编码帧的信息。 ##### 2. NALU头结构 NALU头由一个字节组成,其具体结构如下所示: ``` +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI|Type| +---------------+ ``` - **F**:1个比特,表示forbidden_zero_bit。根据H.264规范,该位必须为0。 - **NRI**:2个比特,表示nal_ref_idc。取值范围为00~11,通常用于指示该NALU的重要性。例如,值为00的NALU可以被解码器丢弃而不影响视频播放质量。 - **Type**:5个比特,表示nal_unit_type,即NALU单元的类型。常见的类型包括但不限于: - 1-23:单个NAL单元。 - 24:STAP-A(Single Time Aggregate Packet),单一时间的组合包。 - 25:STAP-B(Single Time Aggregate Packet),单一时间的组合包。 - 26:MTAP16(Multiple Time Aggregate Packet),多个时间的组合包。 - 27:MTAP24(Multiple Time Aggregate Packet),多个时间的组合包。 - 28:FU-A(Fragmented Unit),分片的单元。 - 29:FU-B(Fragmented Unit),分片的单元。 - 30-31:未定义。 #### 三、打包模式 ##### 1. RTP头结构 根据RFC3550的规定,RTP头结构如下所示: ``` 0123 01234567890123456789012345678901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X|CC|M|PT|sequencenumber| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |timestamp| 2+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |synchronizationsource(SSRC)identifier| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |contributingsource(CSRC)identifiers| |.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` - **V**:版本号,固定为2。 - **P**:填充标志。 - **X**:扩展标志。 - **CC**:CSRC计数器。 - **M**:标记位。 - **PT**:负载类型(Payload Type),7比特。 - **SN**:序列号(Sequence Number),16比特。 - **Timestamp**:时间戳,32比特。 - **SSRC**:同步源标识符。 - **CSRC**:贡献源标识符列表。 ##### 2. H264 RTP Payload格式 H264 RTP Payload格式定义了三种不同的基本负载结构,接收端可以通过RTP Payload的第一个字节来识别这些结构。该字节类似于NALU头的格式,但具有以下特点: - **Type**:当Type的值为24~31时,表示这是一种特别格式的NAL单元。 - 24:STAP-A(单一时间的组合包)。 - 25:STAP-B(单一时间的组合包)。 - 26:MTAP16(多个时间的组合包)。 - 27:MTAP24(多个时间的组合包)。 - 28:FU-A(分片的单元)。 - 29:FU-B(分片的单元)。 - 30-31:未定义。 ##### 3. 打包模式分类 H264 RTP负载格式支持以下几种打包模式: - **单一NAL单元模式**:一个RTP包仅由一个完整的NALU组成。这种情况下,RTP NAL头类型字段与原始H.264的NALU头类型字段相同。 - **组合封包模式**:由多个NAL单元组成一个RTP包。常见的组合方式包括STAP-A、STAP-B、MTAP16和MTAP24。 - **分片封包模式**:用于将一个NALU单元封装成多个RTP包。FU-A和FU-B是两种常见类型。 #### 四、总结 通过对H264 RTP负载格式的详细介绍,我们可以看到,H264编码数据在网络传输过程中需要经过特定的封装处理,以适应RTP协议的要求。了解并掌握这些基础知识对于从事视频通信领域的开发人员来说至关重要。通过单一NAL单元模式、组合封包模式以及分片封包模式的选择和应用,可以有效地提高视频传输的效率和质量,同时减少带宽消耗。此外,熟悉NALU头结构及RTP头结构有助于更好地理解视频流传输的过程和技术细节。
























- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 共建健康清朗网络舆论环境倡议书.doc
- 减速机机盖机体合箱后箱体加工工艺及粗铣前后端面夹具设计.doc
- 网络安全解决方案.doc
- 菲亚特汽车项目管理流程.ppt
- 网络营销从思维开始.pptx
- 加强企业网络会计内部控制的几点建议【会计实务操作教程】.pptx
- 中班主题网络图(2页).doc
- 辽宁工业大学工程项目管理课设施工组织设计.doc
- 智慧城市项目规划设计书总体规划方案样本.doc
- 网络营销发展趋势.pptx
- 基于S7-200-PLC的饮料灌装线控制系统设计.docx
- 项目管理答案整理.doc
- MXVideo-Kotlin资源
- 网络搜索填补信息断层.ppt
- 人事管理系统数据库课程设计报告.doc
- 数据库超市会员管理系统.docx



- 1
- 2
前往页