音视频协议解析(RTP/RTCP/RTSP/RTMP)——RTP载荷解析

介绍

我这个系列讲解音视频相关的协议,这部分内容比较多,我打算分成好几篇讲,感兴趣的读者可以关注一下。有了以上的基础,我就打算做一个音视频的网络服务器。如果您觉得读起来有点困难,可以先补一下计算机网络的知识,主要是TCP,UDP,HTTP相关的知识。

讲解

这篇文章讲解 RTP 协议中的载荷(payload),是报头(Header)接下来的数据结构,对 Header 感兴趣的朋友可以看一下音视频协议解析(RTP/RTCP/RTSP/RTMP)——(2)

RTP 的 payload 根据帧数据大小分成:单包,分片包,聚合包这三类。

单包:

一个 RTP 包含有一帧数据,Header 和帧数据不超过网络最大传输单元(MTU)。

分片包:

如果帧数据比较大,传输时超过了网络最大传输单元(MTU),则需要分片传输,就是将帧数据分为多个 RTP 包传输。

我们可以看到在 payload 前还有 FU indicator 和 FU header,我讲解一下。

FU indicator:

sttuct FU_indicator{
    forbidden_zero_bit;   //F 禁止位 占 1 bit
    nal_ref_idc;          //NRI 占 2 bits
    nal_unit_type;        //NALU类型 占 5 bits
};
FU header:

sttuct FU_header{
    Start;       //帧数据的第一个RTP包,该标志置1, 其他RTP包置0,占 1 bit
    End;       //帧数据的最后一个RTP包,该标志置1,其他RTP包置0,占 1 bit
    R;       //设置为0,占 1 bit
    Type;    //H264的NALU的第一个字节的类型,占 5 bits
};

聚合包:

当帧数据比较少是,组合在一个 RTP 包中传输。

好了,做个总结,由于传输帧的数据大小不固定,有的大有的小,于是就分了3种 RTP 包,对于帧数据小的选择聚合包,刚好的选择单包,太大的选择聚合包。

下一篇,我们接着讲与 RTP 配合使用的 RTCP 协议。

欲知后事如何,请听下回分解。

RTSP(Real-Time Streaming Protocol)是一种用于控制实时流媒体传输的协议,而RTP(Real-time Transport Protocol)则是一种用于在IP网络上传输实时多媒体数据的协议。HDCP(High-bandwidth Digital Content Protection)是一种用于保护数字内容传输的加密协议RTSP通常使用UDP作为传输层协议,适用于IPTV场景,可以传输MP2T/TCP、MP2T/RTP/TCP单播流。而RTP则是建立在UDP协议上的,用于为IP网络上的实时多媒体数据提供端到端的实时传输服务。RTP为实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP(Real-time Transport Control Protocol)来提供。 为什么要搭配这些协议呢?因为实时语音、视频数据经过模数转换和压缩编码处理后,需要通过RTP封装成RTP数据单元,再封装为UDP数据报,最后才能传输到IP网络中。RTSP作为控制协议,用于控制流媒体的播放、暂停、快进等操作。而HDCP则是用于保护数字内容传输的加密协议,确保内容在传输过程中不被非法拷贝或窃取。 综上所述,RTSPRTP和HDCP是在实时流媒体传输中起到不同作用的协议RTSP用于控制流媒体的传输,RTP用于实时传输多媒体数据,而HDCP用于保护数字内容的传输安全。 #### 引用[.reference_title] - *1* [RTSPRTPRTCP、RTMP区别](https://blog.csdn.net/johnWcheung/article/details/124674125)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [RTP/RTSP/RTCP 协议详解](https://blog.csdn.net/ShinichR/article/details/24111401)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值