了解实时媒体的播放(RTP/RTCP 和 RTSP)
http://blog.csdn.net/span76/article/details/12913307
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(会话描述协议)传递信息
- C -> S :
- DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 312
- Accept: application/sdp, application/rtsl, application/mheg
- S -> C :
- RTSP/1.0 200 312 OK
- Date: 23 Jan 1997 15:35:06 GMT
- Content-Type: application/sdp
- Content-Length: 376
- v=0
- o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
- s=SDP Seminar
- i=A Seminar on the session description protocol
- u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
- e=mjh@isi.edu (Mark Handley)
- c=IN IP4 224.2.17.12/127
- t=2873397496 28973404696
- a=recvonly
- m=audio 3456 RTP/AVP 0
- m=video 2232 RTP/AVP 31
- m=whiteboard 32416 UDP WB
- 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公司自己的规范,为播放器和服务器之间音频、视频和数据传输开发的私有协议。
看下面评论
They
are both protocols for Streaming Media
and on a high level achieve the same thing - Specify a standard to
stream media. Although RTMP was developed and owned by Adobe before
being made public , whereas RTSP was a public standard from the
beginning. Since RTMP is mostly used by Flash player。
对于 Android这个开源项目,其 media player 一定是使用 public
的 RTSP
http://blog.csdn.net/joyney/article/details/4296910
http://blog.csdn.net/frankiewang008/article/details/7665547
了解实时媒体的播放(RTP/RTCP 和 RTSP)的更多相关文章
- 【转载】 了解实时媒体的播放(RTP/RTCP 和 RTSP)
http://blog.csdn.net/span76/article/details/12913307 离线媒体只是用 Http协议去读取服务器端文件而已,而对于实时直播如何实现, 这里就要用到 R ...
- RTSP HTTP RTP RTCP
RTSP简介 RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议.RTSP对流 ...
- 【转载】 IP实时传输协议RTP/RTCP详解
http://www.chinaitlab.com/cisco/RIP/832426.html 1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详 ...
- IP实时传输协议RTP/RTCP详解
1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...
- TCP、UDP、RTP(RTCP)异同与区别
OSI七层模型OSI 中的层 功能 TCP/IP协议族 应 用层 ...
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...
- RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)
RTP/RTCP/RTSP/SIP/SDP 关系 RTP(实时传输协议,传输层) Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议 ...
- [转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
[转]流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) http://blog.csdn.net/tttyd/article/details/12032357 RTP ...
- SIP SDP RTSP RTP RTCP webrtc
rfc1889 rfc2326 rfc3261 rfc3550 rfc3856 rfc6120. SIP SDP RTSP RTP RTCP,就像他们出现的顺序一样,他们在实际应用中的启用 ...
随机推荐
- ViewState原理
1.IsPostBack原理 1.1 所有的服务端控件,都必须放在runat="server"的表单里面,runat="server"的表单会生成__VIEWS ...
- DropdownListFor无法正确绑定值-同名问题
DropdownListFor无法正确绑定值 如果以下面的方式进行绑定: <%: Html.DropDownListFor(model => model.subType, ViewBag ...
- GCD学习之dispatch_barrier_async
iOS常见的多线程开发方式有NSThread.NSOPeration和GCD,抽象程度依次提高,GCD是最抽象的,使用起来最简单,但相对来说功能有限,比如不能cancel任务,这也算是一点遗憾吧. 今 ...
- wpf ListBox或ListView等数据控件 绑定数据,最简单的方式
在网上很难找最简单的案例,都是一大片,看着都头疼: 试试举一反三,如果把结果赋给DataContext这个属性,那就前台需要绑定ItemsSource="{Binding}",请注 ...
- Action Filters for ASP.NET MVC
本文主要介绍ASP.NET MVC中的Action Filters,并通过举例来呈现其实际应用. Action Filters 可以作为一个应用,作用到controller action (或整个co ...
- CSS高度塌陷
问题描述:当父元素只包含浮动的元素的时候,且父元素没有设置高度,如果父元素设置了边框border,那么看起来子元素不在父元素之内. 比如这样: html: <div id="paren ...
- 如何在浏览器网页中实现java小应用程序的功能
我们知道,java语言的运用就是面向对象实现功能,和c不同,java语言对于程序员来说,运用起来更为简便. 小应用程序与应用程序不同,小应用程序只能在与Java兼容的容器中运行,可以嵌入在HTML网页 ...
- Codevs 2611 观光旅游(floyed最小环)
2611 观光旅游 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 某旅游区里面有N个景点.两个景点之间可能直接有道路相连,用 ...
- OpenJudge 2802 小游戏 / Poj 1101 The Game
1.链接地址: http://bailian.openjudge.cn/practice/2802 http://poj.org/problem?id=1101 2.题目: 总时间限制: 1000ms ...
- java中的IO流
Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...