一. 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. 解决linux下创建用户时出现 Creating mailbox file: 文件已存在

    原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名.      可以直接用命令#rm -rf /var/spool/mail/用户名    ...

  2. 百度云服务器CentOs6.8安装gnome图形化界面并通过VNC远程访问

    一:安装gnome桌面 利用xshell 登陆上远程主机 依次执行下列命令: [root@lys]#yum groupinstall -y "X Window System" [r ...

  3. Android手机测试环境搭建

    Android SDK概念: SDK(software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. ...

  4. Kotlin构造方法详解与初始化过程分析

    在上一次https://www.cnblogs.com/webor2006/p/11192025.html已经初识了Kolin的面向对象,先来回顾一下: 介绍了primary 构造方法,其特点回忆一下 ...

  5. Java集合之整体概述

    Java集合与数组是相似的,都用于保存一组对象,并提供一些操作来管理对象.然而,不同于数组的是,当添加或删除元素时集合的大小是可以自动变化的.Java集合不可以存放基本类型数据(比如int,long或 ...

  6. SQL Server视频总结

    经过这几天艰苦卓绝的奋斗,我终于把视频看完了,可是不知道自己看了什么,下面就来总结一下,看看都学到了那些. 数据库和VB中有很多地方相似,我们可以直接搬过来,而不必再当做新知识给自己增加难度,要调动自 ...

  7. AI文本审核垃圾内容

    今天无意获得一个AI的文本审核的API,基于深度学习及大规模样本训练的人工智能文本审核技术,一站式准确  检测识别文本中夹杂的色情.推广.辱骂.违禁违法等垃圾内容,净化 网络环境,为您的应用提供更可靠 ...

  8. python实现Bencode解码方法

    近期搞项目中遇到Bencode解码的问题,就用Py写了个Bencode解码的代码.作为笔记保存参考. BEncoding是BitTorrent用在传输数据结构的编码方式,这种编码方式支持四种类型的数据 ...

  9. js select 默认回显判断

    <select id="dataselect" class="input-medium" style="width: 20%"> ...

  10. c语言中字符串转数字的函数

    ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...