用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据、RTCP对RTP进行控制,同步。之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分。而在私有RTSP的代码中,有关控制、同步等,是在RTP Header中做扩展定义实现的。另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即可。RTP:实时传输协议(Real-time Transport Protocol)RTP/RTCP是实际传输数据的协议RTP传输音频/视频数据,如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议(即RTCP)RTSP:实时流协议(Real Time Streaming Protocol,RTSP)RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作用RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送,等等RTCP:RTP/RTCP是实际传输数据的协议RTCP包括Sender Report和Receiver Report,用来进行音频/视频的同步以及其他用途,是一种控制协议以下是每个协议的概要介绍:一、RTP数据协议RTP数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12个字节的含义是固定的,而负载则可以是音频或者视频数据。RTP数据报的头部格式如图1所示:

其中比较重要的几个域及其意义如下:

CSRC记数(CC):表示CSRC标识的数目。CSRC标识紧跟在RTP固定头部之后,用来表示RTP数据报的来源,RTP协议允许在同一个会话中存在多个数据源,它们可以通过RTP混合器合并为一个数据源。例如,可以产生一个CSRC列表来表示一个电话会议,该会议通过一个RTP混合器将所有讲话者的语音数据组合为一个RTP数据源。

负载类型(PT):标明RTP负载的格式,包括所采用的编码算法、采样频率、承载通道等。例如,类型2表明该RTP数据包中承载的是用ITU G.721算法编码的语音数据,采样频率为8000Hz,并且采用单声道。

序列号:用来为接收方提供探测数据丢失的方法,但如何处理丢失的数据则是应用程序自己的事情,RTP协议本身并不负责数据的重传。

时间戳:记录了负载中第一个字节的采样时间,接收方能够时间戳能够确定数据的到达是否受到了延迟抖动的影响,但具体如何来补偿延迟抖动则是应用程序自己的事情。

从RTP数据报的格式不难看出,它包含了传输媒体的类型、格式、序列号、时间戳以及是否有附加数据等信息,这些都为实时的流媒体传输提供了相应的基础。RTP协议的目的是提供实时数据(如交互式的音频和视频)的端到端传输服务,因此在RTP中没有连接的概念,它可以建立在底层的面向连接或面向非连接的传输协议之上;RTP也不依赖于特别的网络地址格式,而仅仅只需要底层传输协议支持组帧(Framing)和分段(Segmentation)就足够了;另外RTP本身还不提供任何可靠性机制,这些都要由传输协议或者应用程序自己来保证。在典型的应用场合下,RTP一般是在传输协议之上作为应用程序的一部分加以实现的,如图2所示:

二、RTCP控制协议RTCP控制协议需要与RTP数据协议一起配合使用,当应用程序启动一个RTP会话时将同时占用两个端口,分别供RTP和RTCP使用。RTP本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。通常RTCP会采用与RTP相同的分发机制,向会话中的所有成员周期性地发送控制信息,应用程序通过接收这些数据,从中获取会话参与者的相关资料,以及网络状况、分组丢失概率等反馈信息,从而能够对服务质量进行控制或者对网络状况进行诊断。

RTCP协议的功能是通过不同的RTCP数据报来实现的,主要有如下几种类型:

SR:发送端报告,所谓发送端是指发出RTP数据报的应用程序或者终端,发送端同时也可以是接收端。微软雅黑; overfl

php视频流传输,视频流传输协议RTP/RTCP/RTSP/HTTP的区别相关推荐

  1. 视频流传输协议RTP/RTCP/RTSP/HTTP的区别

    在转载之前:我研究主要是基于HTTP的视频流,正在研读的论文名:"Modeling and Analyzing the Influence of Chunk Size Variation o ...

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

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

  3. WebRTC学习进阶之路 --- 五、WebRTC网络知识详解(三)(最全流媒体协议(RTP/RTCP/RTSP/RTMP/MMS/HLS/HTTP/ HTTP-FLV(HDL)/SDP)

    WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274 RTP:实时传输协议(Real-time ...

  4. 网络流媒体协议的联系与区别(RTP RTCP RTSP RTMP HLS)

    简结">三句话简结 RTP RTCP RTSP RTMP HLS区别与联系 RTP传输流媒体数据.RTCP对RTP进行控制,同步.RTSP发起/终止流媒体 RTP和RTCP互为姐妹关系 ...

  5. RTP/RTCP/RTSP协议初探

    From:http://apps.hi.baidu.com/share/detail/24794429 一.产生的背景 随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服 ...

  6. RTP/RTCP/RTSP协议

                            描述:协议关系图 图片: 一.产生的背景 随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信 ...

  7. RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)

    RTP/RTCP/RTSP/SIP/SDP 关系   RTP(实时传输协议,传输层) Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议 ...

  8. H264视频传输、编解码----RTP/RTCP协议

    RTSP对流媒体提供了控制方法,使得实时流数据变得可控.但是它并不负责实时流数据的传输.实时流数据的传输和传输过程的同步.优化由RTP/RTCP来负责. 实时传输协议RTP( Real-time Tr ...

  9. IP实时传输协议RTP/RTCP详解

    1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...

最新文章

  1. docker 外部连接_使用外部网络连接Docker容器
  2. 如何使用OpenCppCoverage检查单元测试的行覆盖率
  3. 如何打造不怕被嗅探的3389登陆
  4. 2020德勤面试开始了吗_2020国考面试开始,近期面试公告汇总,附结构化小组面试流程...
  5. 2022年中国CRM行业研究报告
  6. java实现两个字符串相连接_P005 实现两个字符串的连接 ★
  7. checking build system type... ./config.guess: unable to guess system type/you must specify one
  8. mac 提示缺失Myriad字体
  9. 学习进度2012-6-26(动态规划算法、Prim算法、Dijkstra算法)
  10. 女超人、女强人……究竟是谁在以“女”设限?
  11. 安全管家2012上半年手机安全分析报告
  12. 为什么正态分布如此常见?
  13. 开源倾情奉献:基于.NET打造IP智能网络视频监控系统(一)开放源代码
  14. UE4 Pak跨引擎版本错误记录
  15. Blender赛道建模+Gazebo赛道仿真
  16. 【农业科研进展】小麦白粉病与植物叶部病害监测识别
  17. python伪装浏览器什么意思_python浏览器伪装
  18. 写一个基于知识图谱的古诗词问答系统的背景意义,500字
  19. 第十三届蓝桥杯大赛软件赛省赛(JavaB组)
  20. 一般机器学习策略(General Machine Learning Strategy)

热门文章

  1. leetcode 395. Longest Substring with At Least K Repeating Characters| 395. 至少有 K 个重复字符的最长子串(分治法)
  2. How to Fix “Username is not in the sudoers file. This incident will be reported” in Ubuntu
  3. 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
  4. 【Java】Java实现 JSON 的组装和解析
  5. 算法训练营03-数组链表
  6. 16.validate_api
  7. 设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li, 1<= i<= n。这n 个程序的读取概率分别是p1,p2,...,pn,且pi+p2+...+pn =
  8. 【终极方法】Syntax error on tokens, delete these tokens
  9. (~最新合集~)计算机网络谢希仁第七版 第二章课后答案
  10. linux操作系统使用论文_Linux高性能服务器设计