相关博客:

RTSP 很详细的英文文档

 
RTSP协议
http://blog.csdn.net/andyweike/article/details/6210711
注:说明了概念,及一些命令参数的解释 http://baike.baidu.com/view/70534.htm?fr=aladdin RTSP、HTTP、HTTPS、SDP四种协议详解 http://blog.csdn.net/matthew0618band/article/details/9816485 http持久连接概念等,较详细。
RTSP协议的概念,用途以及默认端口 http://blog.csdn.net/chaigang1983/article/details/4708444
(二)RTSP提供的Methods http://blog.csdn.net/chaigang1983/article/details/4713325
RTSP、HTTP、HTTPS、SDP四种协议详解 http://blog.csdn.net/matthew0618band/article/details/9816485 SDP协议学习笔记 http://www.rosoo.net/a/201005/9494.html m=video 0 RTP/AVP 96 m=audio 0 RTP/AVP 97 symbian live5555 & rtsp & rtp & tcp & sdp & udp汇总 http://blog.csdn.net/linzhiji/archive/2010/11/19/6022141.aspx RFC2326(中文版)-实时流协议(RTSP) 第10章 http://www.myfavor.org/e/DoPrint/?classid=3&id=37 RFC2326(中文版)-实时流协议(RTSP) http://www.myfavor.org/network/2008-03-27/35.html RTSP 协议详解 http://hi.baidu.com/13764969808/blog/item/268ff5fd86bb70f4fd037f79.html RTSP 协议详解 http://blog.csdn.net/chenyanxu/article/details/2728427 基于RTSP的实现多媒体文件下载 http://www.jsembed.com/?About/biji/97.html
RTSP协议
http://blog.csdn.net/andyweike/article/details/6210711
注:说明了概念,及一些命令参数的解释 http://baike.baidu.com/view/70534.htm?fr=aladdin

RTSP、HTTP、HTTPS、SDP四种协议详解

http://blog.csdn.net/matthew0618band/article/details/9816485

http持久连接概念等,较详细。

RTSP协议的概念,用途以及默认端口

http://blog.csdn.net/chaigang1983/article/details/4708444

(二)RTSP提供的Methods

http://blog.csdn.net/chaigang1983/article/details/4713325

RTSP、HTTP、HTTPS、SDP四种协议详解

http://blog.csdn.net/matthew0618band/article/details/9816485

SDP协议学习笔记

http://www.rosoo.net/a/201005/9494.html

m=video 0 RTP/AVP 96

m=audio 0 RTP/AVP 97

symbian live5555 & rtsp & rtp & tcp & sdp & udp汇总

http://blog.csdn.net/linzhiji/archive/2010/11/19/6022141.aspx

RFC2326(中文版)-实时流协议(RTSP) 第10章

http://www.myfavor.org/e/DoPrint/?classid=3&id=37

RFC2326(中文版)-实时流协议(RTSP)

http://www.myfavor.org/network/2008-03-27/35.html

RTSP 协议详解

http://hi.baidu.com/13764969808/blog/item/268ff5fd86bb70f4fd037f79.html

RTSP 协议详解

http://blog.csdn.net/chenyanxu/article/details/2728427

基于RTSP的实现多媒体文件下载

http://www.jsembed.com/?About/biji/97.html

 需要注意的问题:

(1):RTSP协议与HTTP协议的联系与区别

RTSP协议负责在服务器和客户端之间建立并控制一 个或多个时间上同步的连续流媒体,其目标是象HTTP协议为用户提供文字和图形服务那样为用户提 供连续媒体服务。因此,RTSP协议的设计在语法和操作上与HTTP协议很相似,这样,对于HTTP的大部分扩展也适用于RTSP。
但是RTSP协议和HTTP协议在很多方面有着区别:
1. HTTP是一个无状态协议,而RTSP协议是有状态的
2. HTTP本质上是一个非对称协议,客户端提出请求而服务器响应;而RTSP是对称的,服务器和客户端都可发送和响应请求。

注:非对称即服务器无法知道客户端的网络情况,不能进行双向的对话了解对端情况,另外http是基于tcp的,对于网络质量要求较高,而rtsp可以选择的

协议就有很多。

(2):

请求示例:

SETUP rtsp://video.fjtu.com.cn:80/vs01/flws/flws_01.rm/streamid=1 RTSP/1.0
CSeq: 3
Transport: RTP/AVP;unicast;client_port=0

响应示例:

解释:

uri中 带有trackID=0,表示对该通道进行设置。

Transport参数设置了传输模式,包的结构。

RTP/AVP表示默认使用UDP传输RTP包,RTP/AVP/TCP表示通过TCP传输RTP包。

unicast表示单一传播。

client_port值中-前的表示客户端的接收RTP包的端口,-后的表示客户端的接收RTCP包的端口。

如果采用TCP方式传送,传送的RTP,RTCP包都在同一个链路上,需要区分,所以有了interleaved,0表示是RTP的通道,1表示是 RTCP的通道,interleaved值有两个:0和1,0表示RTP包,1表示RTCP包,接收端根据interleaved的值来区别是哪种数据包。

(3):

1.协议特点
RTSP协议具有如下的特点:
● 可扩展性:新方法和参数很容易加入RTSP。
● 易解析:RTSP可由标准 HTTP或MIME解析器解析。
● 安全:RTSP使用网页安全机制。
● 独立于传输:RTSP传输通道,可使用不可靠数据包协议(UDP)或可靠数据包协议(RDP),如要实现应用级可靠,可使用诸如TCP的可靠流协议。
● 记录设备控制:协议可控制记录和回放设备。
● 适合专业应用:通过SMPTE 时标,RTSP支持帧级精度,允许远程数字编辑。
● 演示描述中立:协议未强加特殊演示或元文件,可传送所用格式类型;然而,演示描述至少需包含一个RTSP URI。
● 代理与防火墙友好:协议可由应用和传输层防火墙处理。防火墙需要理解SETUP方法,为UDP媒体流打开一个“缺口”。
● 适当的服务器控制:如用户启动一个流,则也可以停止一个流。
● 传输协调:实际处理连续媒体流前,用户可协调传输方法。
● 性能协调:如基本特征无效,则必须有一些清理机制让用户决定那种方法不生效。这允许用户提出适合自己的界面。

(4):

Methods: PLAY

direction: Client to Server
requirement: required
目的: Client 利用 PLAY method 告知 Server 可以开始传送資料, 而且是经由 SETUP method 所选定的 mechanism. 因此,  在尚未收到 Server 对于 SETUP method 的 acknowledge 时, Client 不能发出 PLAY 的 request.
          PLAY method 可利用 Range 这个 header 来告知 Server 端它所需的 data 范围, 亦即 Range header 会將 stream 的起始及結束的范围告知 Server. 另外, PLAY request 可以被 pipelined ( queued ), Server 应照 PLAY request 送达的順序來处理.
          一个沒有附上 Range header 的 PLAY request 也是合法的, 表示由 stream 的关头一直播放到結束或被 pause 为止. 如果一个 stream 因为 PAUSE request 而暂停, 那这个stream 的关头就改为被 pause 的 point.

(5):

3:建立连接的方式

HTTP支持2中建立连接的方式:非持久连接和持久连接(HTTP1.1默认的连接方式为持久连接)。

1) 非持久连接

让我们查看一下非持久连接情况下从服务器到客户传送一个Web页面的步骤。假设该贝面由1个基本HTML文件和10个JPEG图像构成,而且所有这 些对象都存放在同一台服务器主机中。再假设该基本HTML文件的URL为:gpcuster.cnblogs.com/index.html。

下面是具体步骡:

1.HTTP客户初始化一个与服务器主机gpcuster.cnblogs.com中的HTTP服务器的TCP连接。HTTP服务器使用默认端口号80监听来自HTTP客户的连接建立请求。

2.HTTP客户经由与TCP连接相关联的本地套接字发出—个HTTP请求消息。这个消息中包含路径名/somepath/index.html。

3.HTTP服务器经由与TCP连接相关联的本地套接字接收这个请求消息,再从服务器主机的内存或硬盘中取出对象/somepath/index.html,经由同一个套接字发出包含该对象的响应消息。

4.HTTP服务器告知TCP关闭这个TCP连接(不过TCP要到客户收到刚才这个响应消息之后才会真正终止这个连接)。

5.HTTP客户经由同一个套接字接收这个响应消息。TCP连接随后终止。该消息标明所封装的对象是一个HTML文件。客户从中取出这个文件,加以分析后发现其中有10个JPEG对象的引用。

6.给每一个引用到的JPEG对象重复步骡1-4。

上述步骤之所以称为使用非持久连接,原因是每次服务器发出一个对象后,相应的TCP连接就被关闭,也就是说每个连接都没有持续到可用于传送其他对 象。每个TCP连接只用于传输一个请求消息和一个响应消息。就上述例子而言,用户每请求一次那个web页面,就产生11个TCP连接。

2) 持久连接

非持久连接有些缺点。首先,客户得为每个待请求的对象建立并维护一个新的连接。对于每个这样的连接,TCP得在客户端和服务器端分配TCP缓冲区, 并维持TCP变量。对于有可能同时为来自数百个不同客户的请求提供服务的web服务器来说,这会严重增加其负担。其次,如前所述,每个对象都有2个RTT 的响应延长——一个RTT用于建立TCP连接,另—个RTT用于请求和接收对象。最后,每个对象都遭受TCP缓启动,因为每个TCP连接都起始于缓启动阶 段。不过并行TCP连接的使用能够部分减轻RTT延迟和缓启动延迟的影响。

在持久连接情况下,服务器在发出响应后让TCP连接继续打开着。同一对客户/服务器之间的后续请求和响应可以通过这个连接发送。整个Web页面(上 例中为包含一个基本HTMLL文件和10个图像的页面)自不用说可以通过单个持久TCP连接发送:甚至存放在同一个服务器中的多个web页面也可以通过单 个持久TCP连接发送。通常,HTTP服务器在某个连接闲置一段特定时间后关闭它,而这段时间通常是可以配置的。持久连接分为不带流水线(without pipelining)和带流水线(with pipelining)两个版本。如果是不带流水线的版本,那么客户只在收到前一个请求的响应后才发出新的请求。这种情况下,web页面所引用的每个对象 (上例中的10个图像)都经历1个RTT的延迟,用于请求和接收该对象。与非持久连接2个RTT的延迟相比,不带流水线的持久连接已有所改善,不过带流水 线的持久连接还能进一步降低响应延迟。不带流水线版本的另一个缺点是,服务器送出一个对象后开始等待下一个请求,而这个新请求却不能马上到达。这段时间服 务器资源便闲置了。

HTTP/1.1的默认模式使用带流水线的持久连接。这种情况下,HTTP客户每碰到一个引用就立即发出一个请求,因而HTTP客户可以一个接一个 紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。(注:不用等到前一个请求的响应即可请求下一个对象)如果所有的请求和响应都是紧挨着发送的,那么所有引用到的对 象一共只经历1个RTT的延迟(而不是像不带流水线的版本那样,每个引用到的对象都各有1个RTT的延迟)。另外,带流水线的持久连接中服务器空等请求的 时间比较少。与非持久连接相比,持久连接(不论是否带流水线)除降低了1个RTT的响应延迟外,缓启动延迟也比较小。其原因在于既然各个对象使用同一个 TCP连接,服务器发出第一个对象后就不必再以一开始的缓慢速率发送后续对象。相反,服务器可以按照第一个对象发送完毕时的速率开始发送下一个对象。

aa

RTSP的更多相关文章

  1. Atitit onvif协议获取rtsp地址播放java语言 attilx总结

    Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...

  2. 使用vlc播放器做rtsp流媒体服务器

    可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...

  3. 使用vlc播放器播放rtsp流视频

    可参考: 使用vlc播放器做rtsp服务器 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器播放rt ...

  4. web网页中使用vlc插件播放相机rtsp流视频

    可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 使用vlc进行二次开发做自己的播放器 vlc功能还是很强大的,有很多的现成的二次开发接口,不需配置太多即可轻松做客户端播放 ...

  5. RTSP协议转换RTMP直播协议

    RTSP协议转换RTMP直播协议 RTSP协议也是广泛使用的直播/点播流媒体协议,最近实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为 ...

  6. 前段播放 流媒体(RTMP,RTSP,HLS)

    前言 最近项目需要流媒体的播放,后端一共提供了 三种流数据(RTSP,RTMP,HLS),在不同的场景可能会使用到不同方式播放,就需要做到适配, 支持所有的流数据播放.花了一段时间研究,在这里和大家分 ...

  7. Onvif设备Rtsp地址解析和播放

    今天把Onvif搜索以及Rtsp流这一块的功能集成了下, 主要包含以下功能: 1. onvif设备的搜索 2. 设备rtsp地址的解析 3. Rtsp流的播放 4. 建立Rtsp流服务器, 使用vlc ...

  8. RTSP流和USB摄像头转MJPEG使用VLC

    测试环境: 系统: Ubuntu14.04 LTS Desktop 设备:海康IP摄像头和USB摄像头 1.需要先安装vlc包,命令行运行 sudo apt-get update sudo apt-g ...

  9. RTSP协议媒体数据发包相关的细节

    最近完成了一RTSP代理网关,这是第二次开发做RTSP协议相关的开发工作了,相比11年的简单粗糙的版本,这次在底层TCP/IP通讯和RTSP协议上都有了一些新的积累,这里记录一下.基本的RTSP协议交 ...

  10. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

随机推荐

  1. Clean Code(三):注释

    在工作中经常在刚开始写代码的时候,写下类与方法的注释,时间久了,CR多了,也不可能一直去修改注释了.加班都累成dog.注释才不改呢,就是这么任性,哈哈. 项目久了,注释会欺骗阅读者,本人被骗过,也骗过 ...

  2. C#扫盲之:带你掌握C#的扩展方法、以及探讨扩展方法的本质、注意事项

    1.为什么需要扩展方法 .NET3.5给我们提供了扩展方法的概念,它的功能是在不修改要添加类型的原有结构时,允许你为类或结构添加新方法. 思考:那么究竟为什么需要扩展方法呢,为什么不直接修改原有类型呢 ...

  3. .net+easyui系列--按钮

    easyui提供了各种按钮样式,包括搜索.新增.保存.删除等 <a id="btn" href="#" class="easyui-linkbu ...

  4. VS 2013 编译和使用 Boost

    以 1.58.0 版本 boost 为例, 当前系统版本为 Windows 8.1 x64   1 编译boost  当前解压路径 "D:\Libraries\boost_1_58_0&qu ...

  5. Sublime Text2配置python环境

    1.下载python并安装     地址:https://www.python.org/downloads/ 2.下载Sublime Text2 并安装     地址:http://www.subli ...

  6. 关于bootstrap的datepicker在meteor应用中的使用(不包含bootstrap框架)

    1.安装bootstrap3-datepicker包 meteor add rajit:bootstrap3-datepicker 2.使用方法 Example In your handlebars ...

  7. C++ socket开发1

    服务端 setlocale(LC_ALL,"Chinese-simplified"); WORD wVersionRequested; WSADATA wsaData; int e ...

  8. Core Data(数据持久化)

    Core Data可能是OS X和iOS中最容易被误解的框架之一了.为了帮助大家理解,我们将快速研究Core Data,来看一下它是关于什么的.为了正确使用Core Data, 有必要理解其概念.几乎 ...

  9. iOS .pch文件的使用

    什么是.pch文件预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只 ...

  10. LA 3177 Beijing Guards(二分法 贪心)

    Beijing Guards Beijing was once surrounded by four rings of city walls: the Forbidden City Wall, the ...