1、RTP协议的概念及地位

1.1 概念

RTP全名是Real-time Transport Protocol(实时传输协议),RTP 是一个应用型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。RTP 位于UDP(User Datagram Protocol) 之上。UDP 虽然没有TCP 那么可靠,并且无法保证实时业务的服务质量,需要RTCP 实时监控数据传输和服务质量。

1.2 地位

2、RTP协议头部分析

1)        V:RTP协议的版本号,占2位。

2)        P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

3)        X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头

4)        CC:CSRC计数器,占4位,指示CSRC 标识符的个数(作用信源CSRC计数器)

5)        M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。(对于分组中的重要事件可用该位标识)

6)        PT: 有效荷载类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。

7)        序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,序列号的初始值是随机的,同时音频包和视频包的sequence是分别记数的。

8)        时戳(Timestamp):占32位,必须使用90 kHz 时钟频率。时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

9)        同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

10)    特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

SSRC与CSRC

转自:https://blog.csdn.net/zhushentian/article/details/79804742

同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

·特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

这里的同步信源是指产生媒体流的信源,例如麦克风、摄像机、RTP混合器等;它通过RTP报头中的一个32位数字SSRC标识符来标识,而不依赖于网络地址,接收者将根据SSRC标识符来区分不同的信源,进行RTP报文的分组。

特约信源是指当混合器接收到一个或多个同步信源的RTP报文后,经过混合处理产生一个新的组合RTP报文,并把混合器作为组合RTP报文的 SSRC,而将原来所有的SSRC都作为CSRC传送给接收者,使接收者知道组成组合报文的各个SSRC。

若一个RTP包流的源,对由RTP混频器生成的组合流起了作用,则它就是一个作用源。对特定包的生成起作用的源,其SSRC标识符组成的列表,被混频器插入到包的RTP报头中。这个列表叫做CSRC表。

用图表示大概是这样:

例如,有三个信号源各发出一路rtp流,RTP1携带的SSRC是SSRC1,RTP2携带的SSRC是SSRC2,RTP3携带SSRC3,这三路RTP流到达混合器时,混合器会将这三路流混合成一路流发出去,它会把这三路流的SSRC记录下来,形成一个列表,叫CSRC表,在发送的混合RTP流中,SSRC域填充的字段是混合器本身的SSRC4,而CSRC字段则会根据该包的负载的源来填入。

例如当前的RTP包的负载是来自SSRC1的,那么在当前RTP包的CSRC字段填入SSRC1。

这样接收者就可以根据CSRC来区分不同的信源;

一般的,混合的RTP流中,每隔一段时间,就会有一个RTP报文包含了完整的CSRC表。例如在发送混合流时的第一个RTP包,它的CSRC域把CSRC表都填入,此时该包的负载可能是无意义或者并不是媒体流;此后的RTP报文中则根据负载的来源来填入CSRC域。

转载于:https://www.cnblogs.com/qing1991/p/10089662.html

流媒体传输协议---RTP--基础相关推荐

  1. 流媒体传输协议系列之----RTP/RTCP协议解析

    https://blog.csdn.net/davidsguo008/article/details/73658422?utm_medium=distribute.pc_relevant_downlo ...

  2. 流媒体传输协议之 RTP

    引言 本系列文章将整理各路流媒体传输协议,包括RTP/RTCP,RTMP,希望通过深入理解各个流媒体传输协议的设计细节,对今后流媒体部分的开发工作有一定的启发.更多相关文章和其他文章均收录于贝贝猫的文 ...

  3. 流媒体传输协议之 RTP (上篇)

    本系列文章将整理各个流媒体传输协议,包括 RTP/RTCP,RTMP,希望通过深入梳理协议的设计细节,能够给流媒体领域的开发者带来一定的启发. 作者:逸殊 审核:泰一 介绍 RTP,即 real-ti ...

  4. 智能终端会议系统(20)---网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系

    网络视频传输协议--RTP/RTCP/RTSP/SIP/SDP 之间关系 RTP/RTCP/RTSP/SIP/SDP 关系 1. RTP Real-time Transport Protocol,是用 ...

  5. 最详细的流媒体传输协议-rtsp协议详解

    流媒体传输协议-rtsp协议详解 参阅:RTSP协议详解和分析从零开始写一个RTSP服务器(一)RTSP协议讲解关于RTSP_RTP_RTCP协议的深刻初步介绍 rtsp RTSP出现以前,最热的大概 ...

  6. 流媒体传输协议浅析(一)

    一.常见的流媒体协议 关于流媒体传输协议,涉及到不同领域,不同业务场景,种类众多,下面一张图是目前常见的流媒体协议. 常见的流媒体传输协议 1)从交互方式来看,流媒体分为点播(VOD)和直播(LIVE ...

  7. 流媒体封装格式和流媒体传输协议介绍

    1.流媒体封装格式介绍 一个流媒体文件由音频流和视频流两种数据组成. h264/mpeg4等就是视频流编码格式,视频流一般以帧的单位存在,i帧.p帧.b帧,帧率(frame rate)是每秒显示帧数( ...

  8. 流媒体传输协议及音视频编解码技术

    说明:本文来自一篇出处不明的老文章,有些内容已过时,但仍有很大的参考价值. 一.音视频编解码技术 1.MPEG4 MPEG全称是Moving Pictures Experts Group,它是&quo ...

  9. 技术博客|第15期:流媒体传输协议简介 - HLS协议

    在Hulu及Disney+流媒体平台上,自适应流媒体传输技术被广泛使用,它可以根据用户的网络情况相应地调整视频码率,为用户带来良好的观看体验.为了实现这一点,视频将被编码成不同码率的版本,并且在每个版 ...

  10. 自制Linux功能板-新增功能(基于RTMP流媒体传输协议的视频监控)

    目录 一.ffmpeg工具 1.简介 2.移植相关库 二.RTMP的nginx服务器 1.简介 2.移植 三.运行测试 1.启动nginx 2.使用 FFmpeg 推流 引言:小板子能联网还有摄像头, ...

最新文章

  1. 5G NGC — 关键技术 — MEC 边缘云
  2. python爬虫正则表达式实例-使用正则表达式进行页面提取
  3. Java创建线程的方式
  4. 【ARDUINO】HC-05蓝牙不配对问题
  5. firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
  6. 《深入浅出DPDK》读书笔记(八):网卡性能优化(异步中断模式、轮询模式、混和中断轮询模式)
  7. 挑战Tiktok,跨境卖家的新红利流量渠道?
  8. EDA实验课课程笔记(八 )——PT(Prime Time)简介(附录静态时序分析)
  9. 白话CSS3的新特性
  10. pyqt4的一些相关资料整理
  11. spss中有关独立样本T检验的详细介绍(包含操作过程和结果分析)
  12. hishop6.0和易分销2.0数据库迁移手册
  13. 用System中System.setOut()方法修改输出方式
  14. P5055 【模板】可持久化文艺平衡树 可持久化fhqtreap
  15. 腾讯云服务器到期未续费,CVM实例被释放还能找回文件吗?
  16. php cgi.sock 502,nginx中unix:/tmp/php-cgi.sock错误解决解决
  17. 串级PID的直立控制
  18. html下拉栏加箭头,CSS-下拉菜单上的引导3箭头
  19. java统计词频算法_Java实现的词频统计——功能改进
  20. Redis主从模式下从库过期的key仍然能够被读到的解决方案

热门文章

  1. fitnesse - 框架介绍
  2. 物联网 数据驱动企业 如何应对数据洪流
  3. Linux下MySQL C API简单示例
  4. rcp(插件开发) 如何查找自己定义的扩展点
  5. [转载] 中华典故故事(孙刚)——13 马虎
  6. 让Windows 7揪出每一个暗中运行程序
  7. 读《差距在哪里,你与开发高手的距离到底有多远》一点感想
  8. Hive客户端secureCRT中文显示设置
  9. (转载)机器学习知识点(十一)隐马尔可夫模型
  10. htmlparser解决PKIX path building failed问题的两种方法