一. RTP协议

实时传输协议 RTP(Real-time Transport Protocol)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新。

RTP通常是配合 RTCP协议使用,通过 RTCP 协议来控制流量和拥塞。

RTP 的包格式:

V

P

X

CC

M

PT

SN

时间戳

同步信源(SSRC)标识符

特约信源(CSRC)标识符

···

格式说明:

1. V:版本号,用来标志当前使用的RTP版本,2bit;

2. P:填充位,如果该位=1,对应RTP包的尾部则包含附加的填充字节,1bit;

3. X:扩展位,如果该位=1,对应RTP固定头部后面则跟一个扩展头部,1bit;

4. CC:CSRC计数器,对应固定头部后面跟着的 CSRC数目,4bit;

5. M:标记位,不同的有效载荷有不同的含义,如果是视频,标记一帧的结束;如果是音频,标记会话的开始;

由配置文档 Profile来解释,1bit;

6. PT:载荷类型,标识了RTP载荷的类型(比如 音频、图像等),7bit;

7. SN:序列号,对于发送方 - 每发送完一个RTP包+1,对于接收方 - 用来检测报文丢失情况,重新排序报文,恢复数据,16比特;

8. 时间戳:标记该RTP报文的第一个八位组的采样时刻,接收者通过时间戳来计算延迟和延迟抖动,并进行同步控制;

9. SSRC:同步信源标识符,即 RTP包的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是随机选取的,32比特;

10. CSRC:特约信源标识符,用来标识了包含在该RTP报文有效载荷中的所有特约信源。

CSRC 可以有0~15项,每项32比特;

二. RTP协议的用途

RTP协议主要用于在互联网上传输,用于传递音频和视频的标准数据包。在目前三网融合中也用来承载TS流,进行电视媒体数据的传播。

在GB28181中,使用的也是RTP的封包格式,基于PS进行封包,具体PS封包格式,可以参考上节内容。

GB28181技术基础之3 - RTP的更多相关文章

  1. GB28181技术基础之1 - SIP协议

    SIP 协议,即 会话初始协议(Session Initiation Protocol),是一个应用层的 点对点协议,用于初始.管理和终止网络中的语音和视频会话,是 GB28181 的核心之一. 按照 ...

  2. GB28181技术基础之2 - H264与PS封包

    二. PS封包 PS 是 GB28181 规定的标准封包格式(也是存储格式),在讲 PS 之前,先介绍几种相关的 数据格式概念: 1)ES 基本流 (Elementary Streams)是直接从编码 ...

  3. JNI技术基础(2)——从零开始编写JNI代码

    书接上文: <JNI技术基础(1)——从零开始编写JNI代码> 2.编译源程序HelloWorld.java并生成HelloWorld.class 3.生成头文件HelloWorld.h ...

  4. AOP技术基础

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  5. 《C#语言和数据库技术基础》单词必备

    <C#语言和数据库技术基础> 第一章1..NET Framework   框架2.sharp            尖锐,强烈的3.application      应用程序4.devel ...

  6. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  7. ajax技术基础详解

    一.概述 1.什么是ajax 可以与服务器进行[异步]交互的技术,浏览器无需刷新 2.什么时候出现ajax? -- XMLHttp 微软 1999年微软公司发布IE5版本,内嵌了ajax技术 什么时候 ...

  8. AOP技术基础(转)

    1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...

  9. 现代前端技术解析:Web前端技术基础

    ​ 最近几年,越来越多的人投入到前端大军中:时至至今,前端工程师的数量仍然不能满足企业的发展需求:与此同时,互联网应用场景的复杂化提高了对前端工程师能力的要求,一部分初期前端工程师并不能胜任企业的工作 ...

随机推荐

  1. [转] 雷电三和typec傻傻分不清

    原文:https://club.lenovo.com.cn/thread-4921715-1-1.html 因为形状完全一致,所以很多人都误以为Type-C=雷电3. 实际上,雷电3只是采用了Type ...

  2. Spring Boot+STOMP解决消息乱序问题

    当我们使用Spring Boot+websocket进行前后端进行通信时,我们需要注意:服务器可以随时向客户端发送消息.默认的情况下,不保证:服务器发送的消息与到达客户端的消息的顺序是一致的.可能先发 ...

  3. mysql启动错误:Starting MySQL.. ERROR! The server quit without updating PID file错误

    1.原因是因为 mysql-bin.0000*的文件占满系统盘,磁盘空间不足导致无法写入. 解决方法: 如果不需要二进制日志文件,二进制文件可以实现数据库复制以及即时点恢复. 查看日志在配置文件的da ...

  4. test20190830 NOIP 模拟赛

    100+70+0=170.这套题早就被上传到BZOJ上了,可惜我一到都没做过. BZOJ4765 普通计算姬 小G的计算姬可以解决这么个问题:给定一棵n个节点的带权树,节点编号为1到n,以root为根 ...

  5. Fiddler——如何抓取PHP的curl请求

    前言 本文主要介绍如何使用fiddler工具,来进行抓取PHP的curl请求,如果你会使用fiddler,那就是一行代码的事, 不会也没事,本文会教你如何简单的使用. 步骤 代码 设置桥接网络为127 ...

  6. 判断 List map set 是否为空

    //如果object为null,则设置为defaultValue ObjectUtils.defaultIfNull(object, defaultValue); //判断集合是否为null List ...

  7. [RxJS] Groupby operator

    The use case is similar to Twitter "like" button, you can click "click" button o ...

  8. Oracle plsql存储过程中out模式参数的用法

    在plsql中,存储过程中的out模式的参数可以用来返回数据,相当于函数的返回值.下面是一个小例子. 沿用上一篇的emp表结构和数据. 存储过程如下: create or replace proced ...

  9. TCPDUMP抓包学习

    一.抓包基础 1.抓网卡ens33 的包,有多大抓多大,然后保存到a.cap中 [root@localhost ~]# tcpdump -i ens33 -s -w a.cap tcpdump: li ...

  10. window的pid为4的system进程占用80端口的解决办法

    1.taskkill /pid 4 /f 无法终止进程占用80端口的进程时,运行 net stop http(若是第一次运行不能终止所有服务,继续运行该命令)