RTP载荷H265(实战细节)
创始人
2025-05-30 11:37:34

H264与H265协议详解
RTP载荷H264(实战细节)

RTP载荷H265(实战细节)

RTP包的结构:

        RTP头在 “RTP载荷H264(实战细节)”讲的很清楚了,不了解的可以从上面链接进入查看,H265中RTP头的使用方法和H264一样,下面直接说下RTP载荷H265的载荷结构,及与载荷H264的区别:

RTP载荷H265

        载荷和H264的载荷方式是一样的,根据帧数据的大小分为:单包,分片包,聚合包。具体的解释请参考“RTP载荷H264(实战细节)”。

        载荷H265和载荷H264的单包,聚合包都是一样的,但是分片包有所区别,下面说一下载荷H265的分片包数据结构:

       

其中payloadhdr的结构如下:


|0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7|
|F|   Type      |  LayerId   | TID |

        H265封装为RTP包的时候Type=49, F layerid TID都和H265 NAL head的F layerid TID相同,H265 NAL head结构如下具体的H264 H265协议参考上面的链接博客:

       

nal_unit_head{forbidden_zero_bit(1bit):    禁止位 == Fnal_unit_type(6bit):        NALU类型nuh_reserved_zero_6bits(6bit): == layeridnuh_temporal_id_plis1(3bit): == TID
};

可以看出NAL head的结构和RTP载荷的payloadhdr是一样的,除了Type。

FU header结构如下:

|0 |1|2|3|4|5|6|7|

|S|E| FuType   |

S:第一个RTP分片包该位置1,其他置0;

E:最后一个RTP分片该位置1,其他置0;

FuType:与NAL head的6bitNALU 类型是一样的。

有此可知,H265的NAL head信息已经分别保存在了RTP的payloadhdr和 FU header中所以在封装RTP包时去除掉H265的起始码和NAL head信息:

H265数据:

00 00 00 01 0c 64 XX XX XX XX........

封装RTP包后:

RTP头 payloadhdr FU header XX XX XX XX......(去掉了起始码(00 00 00 01)和NAL head( 0c 64))

DONL字段平时的用法中可以不进行填充封装。

相关内容

热门资讯

12岁女孩被虐待致死案新进展:... 新京报记者 赵露 制作 礼牧周 ▲新京报我们视频出品(ID:wevideo) 12月17日,记者从被...
2025年阿坝全州接待游客预计... 12月17日,阿坝州“全域旅游示范引领专场”发布会在汶川县举行,州文广旅局党组成员、副局长张艳介绍2...
工商变更!余承东出任华为终端公... 据国家企业信用信息公示系统显示,12月12日,华为终端有限公司发生工商变更,郭平卸任董事长,由余承东...