GB28181技术基础之3 - RTP
一. 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的更多相关文章
- GB28181技术基础之1 - SIP协议
SIP 协议,即 会话初始协议(Session Initiation Protocol),是一个应用层的 点对点协议,用于初始.管理和终止网络中的语音和视频会话,是 GB28181 的核心之一. 按照 ...
- GB28181技术基础之2 - H264与PS封包
二. PS封包 PS 是 GB28181 规定的标准封包格式(也是存储格式),在讲 PS 之前,先介绍几种相关的 数据格式概念: 1)ES 基本流 (Elementary Streams)是直接从编码 ...
- JNI技术基础(2)——从零开始编写JNI代码
书接上文: <JNI技术基础(1)——从零开始编写JNI代码> 2.编译源程序HelloWorld.java并生成HelloWorld.class 3.生成头文件HelloWorld.h ...
- AOP技术基础
1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...
- 《C#语言和数据库技术基础》单词必备
<C#语言和数据库技术基础> 第一章1..NET Framework 框架2.sharp 尖锐,强烈的3.application 应用程序4.devel ...
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- ajax技术基础详解
一.概述 1.什么是ajax 可以与服务器进行[异步]交互的技术,浏览器无需刷新 2.什么时候出现ajax? -- XMLHttp 微软 1999年微软公司发布IE5版本,内嵌了ajax技术 什么时候 ...
- AOP技术基础(转)
1.引言 2.AOP技术基础 3.Java平台AOP技术研究 4..Net平台AOP技术研究 2.1 AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto ...
- 现代前端技术解析:Web前端技术基础
最近几年,越来越多的人投入到前端大军中:时至至今,前端工程师的数量仍然不能满足企业的发展需求:与此同时,互联网应用场景的复杂化提高了对前端工程师能力的要求,一部分初期前端工程师并不能胜任企业的工作 ...
随机推荐
- 解决linux下创建用户时出现 Creating mailbox file: 文件已存在
原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名. 可以直接用命令#rm -rf /var/spool/mail/用户名 ...
- 百度云服务器CentOs6.8安装gnome图形化界面并通过VNC远程访问
一:安装gnome桌面 利用xshell 登陆上远程主机 依次执行下列命令: [root@lys]#yum groupinstall -y "X Window System" [r ...
- Android手机测试环境搭建
Android SDK概念: SDK(software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. ...
- Kotlin构造方法详解与初始化过程分析
在上一次https://www.cnblogs.com/webor2006/p/11192025.html已经初识了Kolin的面向对象,先来回顾一下: 介绍了primary 构造方法,其特点回忆一下 ...
- Java集合之整体概述
Java集合与数组是相似的,都用于保存一组对象,并提供一些操作来管理对象.然而,不同于数组的是,当添加或删除元素时集合的大小是可以自动变化的.Java集合不可以存放基本类型数据(比如int,long或 ...
- SQL Server视频总结
经过这几天艰苦卓绝的奋斗,我终于把视频看完了,可是不知道自己看了什么,下面就来总结一下,看看都学到了那些. 数据库和VB中有很多地方相似,我们可以直接搬过来,而不必再当做新知识给自己增加难度,要调动自 ...
- AI文本审核垃圾内容
今天无意获得一个AI的文本审核的API,基于深度学习及大规模样本训练的人工智能文本审核技术,一站式准确 检测识别文本中夹杂的色情.推广.辱骂.违禁违法等垃圾内容,净化 网络环境,为您的应用提供更可靠 ...
- python实现Bencode解码方法
近期搞项目中遇到Bencode解码的问题,就用Py写了个Bencode解码的代码.作为笔记保存参考. BEncoding是BitTorrent用在传输数据结构的编码方式,这种编码方式支持四种类型的数据 ...
- js select 默认回显判断
<select id="dataselect" class="input-medium" style="width: 20%"> ...
- c语言中字符串转数字的函数
ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...