当前位置: 首页 > news >正文

RTP协议

一、介绍

        RTP协议是一个实时传输流协议,是应用层的一个协议。通常说的RTSP包括以下三种:

1. RTSP协议:负责服务器和客户端之间的请求与响应

2. RTP协议:负责服务器和客户端之间的传输媒体数据

3. RTCP协议:负责提供有关RTP传输质量的反馈,就是确保RTP的传输质量

RTPRTCP并没有规定传输层的类型,可以是TCPUDP,但RTSP传输层必须基于TCP

二、RTP结构

        RTP数据包由 RTP报文头 + 有效荷载 组成。

struct RtpPacket {struct RtpHeader;//报文头uint8_t payload[0];//有效荷载(弹性数组)
};

2.1 RTP头部

        RTP头部结构如下图所示:

//报文头:大端存储
struct RtpHeader{/* byte 0 */uint8_t csrclen : 4;    //CSRC计数器,占4位,表示CSRC的个数uint8_t extension : 1;  //扩展位,占1位,如果X=1,在RTP报文头后会跟一个扩展报文头uint8_t padding : 1;    //填充标志,占1位,如果P=1,在RTP报文后会填充一个或者多个八位组,它们不是有效荷载的一部分uint8_t version : 2;//RTP协议版本号,占2位/* byte 1 */uint8_t payloadType : 7; //有效荷载类型,占7位,用于说明RTP有效荷载的类型,比如GSM音频、JPEM图像等uint8_t marker : 1;      //标记,占1位,对于不同有效荷载类型的意义不同:1.对于视频来说,标记着一帧的结束。2.对于图像来说,标记会话的开始  /* byte 2-3 */uint16_t seq;            //序列号,占16位,每发送一个报文,序列号递增1//接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据/* byte 4-7 */uint32_t timetamp;       //时间戳,占32位,记录了此RTP报文的第一个八位组的采样时刻//接受者可以用时间戳计算延迟/* byte 8-11 */uint32_t ssrc;           //同步信源的唯一标识,占32位,同一RTP会话中没有相同的SSRC/*标准的RTPHeader还可能存在0-15个CSRCuint32_t csrc;//特约信源,每个占32位,表示对RTP数据包做出过贡献的源,//它用于标识在混合音频时,实际参与的数据源*/
};

http://www.mrgr.cn/news/17794.html

相关文章:

  • 基于zigbee的广告牌安全监测系统设计与实现(论文+源码)
  • 《黑神话:悟空》:文化与技术的碰撞与数字创作的新方向
  • Nginx安全性配置
  • TensorFlow创建回归神经网络及Optimizer优化器
  • H264编码
  • 大模型微调中的内存效率问题及解决方案
  • 【Docker镜像转存阿里云脚本】
  • 开启ROS 2中的geometry坐标模拟展示
  • 基础闯关3
  • K8s系列之:Operator 和 Operator Framework
  • C#绘制常用工业控件(仪表盘,流动条,开关等)
  • Android图片缓存工具类LruCache原理和使用介绍
  • K8s系列之:解释Kubernetes Operators
  • 视联动力数字科技新成果闪耀2024数博会
  • Linux实验报告2-初步使用shell
  • 展锐7870 Camera HAL层日志调试
  • 钢铁百科:A633D交货状态、A633D对应牌号、A633D力学性能解析
  • 软件项目实施方案(Word原件-项目案例)
  • 007.Python爬虫系列_初识爬虫
  • pyro ExponentialLR 如何设置优化器 optimizer的学习率 pytorch 深度神经网络 bnn,