http://blog.csdn.net/span76/article/details/12913307

离线媒体只是用 Http协议去读取服务器端文件而已,而对于实时直播如何实现, 这里就要用到 RTP/RTCP协议了

RTP/RTCP

RTP是基于 UDP协议的, UDP不用建立连接,效率更高;但允许丢包, 这就要求在重新组装媒体的时候多做些工作

RTP只是包裹内容信息,而RTCP是交换控制信息的,Qos是通过RTCP实现的

RTP中一个重要的概念是 session, 对于一个 audio stream 可以是一个session 但可以有多个 contributor, 也可以有多个监听者, 比如网络电话

做实时视频流,先用采集设备,直接把视频做成 H.264 的 NALu,而后通过 RTP打包,传输给客户端

有一篇文就是介绍如何把 NALu 用RTP打包的

http://www.rosoo.net/a/201108/14896.html

RTSP

但还缺少一个环节, 应用程序对应的是 play, seek, pause, stop, 如何把应用指令和 RTP的传输结合起来.

RTSP正是为了解决这个问题产生的

RTSP是应用层的协议和 HTTP协议很相似,客户端和服务器通过传递文本,通知如何进行 RTP/RTCP信息的交互

从图中,我们可以看到 RTSP也可以不用 RTP, 而用TCP来实现流媒体传递

RTSP的 client 连接 server 多通过 SDP(会话描述协议)传递信息

[html] view plaincopy
  1. C -> S :
  2. DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 312
  3. Accept: application/sdp, application/rtsl, application/mheg
  4. S -> C :
  5. RTSP/1.0 200 312 OK
  6. Date: 23 Jan 1997 15:35:06 GMT
  7. Content-Type: application/sdp
  8. Content-Length: 376
  9. v=0
  10. o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
  11. s=SDP Seminar
  12. i=A Seminar on the session description protocol
  13. u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
  14. e=mjh@isi.edu (Mark Handley)
  15. c=IN IP4 224.2.17.12/127
  16. t=2873397496 28973404696
  17. a=recvonly
  18. m=audio 3456 RTP/AVP 0
  19. m=video 2232 RTP/AVP 31
  20. m=whiteboard 32416 UDP WB
  21. a=orient:portrait

Session description
          v=   (protocol version)
          o=   (owner/creator and session identifier)
          s=   (session name)
          i=* (session information)
          u=* (URI of description)
          e=* (email address)
          p=* (phone number)
          c=* (connection information - not required if included in all media)
          b=* (zero or more bandwidth information lines)
          One or more time descriptions ("t=" and "r=" lines, see below)
          z=* (time zone adjustments)
          k=* (encryption key)
          a=* (zero or more session attribute lines)
          Zero or more media descriptions
通过这些信息,client 就可以连接正确的 RTP session

关于RTMP和RTSP的区别

RTMP: RTM(Messaging)P 是 Adobe公司自己的规范,为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。

转载于:https://www.cnblogs.com/littleKing163/p/4823074.html

【转载】 了解实时媒体的播放(RTP/RTCP 和 RTSP)相关推荐

  1. RTP/RTCP/RTSP协议初探

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

  2. RTP/RTCP/RTSP协议

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

  3. 开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用

    1.前言 RTP/RTCP协议是流媒体通信的基石.RTP协议定义流媒体数据在互联网上传输的数据包格式,而RTCP协议则负责可靠传输.流量控制和拥塞控制等服务质量保证.在WebRTC项目中,RTP/RT ...

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

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

  5. 实时传输协议:RTP、RTCP、RTSP介绍

    http://blog.csdn.net/heanyu/article/details/6202500 RTP(Real Time Transport Protocol) RTP是针对Internet ...

  6. (转载)H.264码流的RTP封包说明

    H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...

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

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

  8. RTP/RTCP 和 SRTP/SRTCP协议

    此文章为转载,如有侵权,通知删除 原地址:https://blog.csdn.net/swallow_he/article/details/74202104 RTP/RTCP 和 SRTP/SRTCP ...

  9. LIVE555 RTSP RTP/RTCP协议介绍

    LIVE555  RTSP.RTP/RTCP协议介绍 一.概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与H ...

最新文章

  1. [转]Erlang 大量写入出警报
  2. 计算机网络通信技术课程的基本知识点内容,河北《计算机网络与通信(2339)》自学考试大纲...
  3. 如何快速在Github找到你想要的东西
  4. 增量式pid调节方式有何优点_PID控制算法
  5. python3字节转化字符_浅谈 Python3 中对二进制数据 XOR 编码的正确姿势
  6. 车辆销售系统用例_使用OpenCV和Python构建自己的车辆检测模型
  7. 8.BLE---错误码
  8. 伪响应式开发(PC和Mobile分离)
  9. Visual Studio 2017 编译Clang
  10. 大数据和人工智能体系图
  11. NLog 在winform和asp.net下使用快速攻略 .
  12. RK987A键盘说明书(自用)
  13. office起动缓慢_如何解决Microsoft Outlook启动缓慢的问题
  14. Gearman中文手册技术文档分享chm
  15. 没有标准答案的GIS问题
  16. 哈,我终于成功量产:因写保护无法格式化的U盘。
  17. 【小白必读】机器学习入门须知
  18. css3的nth为什么不生效,CSS:nth-​​child(偶数)选择器背景颜色不起作用
  19. 微博设置 和 逻辑
  20. 群晖ds216j如何安装迅雷软件

热门文章

  1. mac版本自带2.7.10版本的python情况下如何安装和使用python3.x
  2. bzoj [Scoi2016]美味
  3. Post请求,向服务器发送用户信息
  4. 提高jQuery执行效率
  5. 用Java实现几种常用排序算法(先实现一个org.rut.util.algorithm.SortUtil)
  6. 实现一个EventTarget类
  7. Java《剑指Offer》面试题2:替换空格
  8. Java5的 线程并发库
  9. tomcat的热部署
  10. Microsoft Windows Workflow Foundation 4.0 Cookbook