转:简单的RTSP消息交互过程

简单的RTSP消息交互过程

C表示RTSP客户端,S表示RTSP服务端

1.   第一步:查询服务器端可用方法

1.C->S:OPTION request       //询问S有哪些方法可用

1.S->C:OPTION response    //S回应信息的public头字段中包括提供的所有可用方法

2.   第二步:得到媒体描述信息

2.C->S:DESCRIBE request      //要求得到S提供的媒体描述信息

2.S->C:DESCRIBE response    //S回应媒体描述信息,一般是sdp信息

3.   第三步:建立RTSP会话

3.C->S:SETUP request             //通过Transport头字段列出可接受的传输选项,请求S建立会话

3.S->C:SETUP response          //S建立会话,通过Transport头字段返回选择的具体转输选项,并返回建立的Session ID;

4.   第四步:请求开始传送数据

4.C->S:PLAY request        //C请求S开始发送数据

4.S->C:PLAY response            //S回应该请求的信息

5.   第五步: 数据传送播放中

S->C:发送流媒体数据    // 通过RTP协议传送数据

6.   第六步:关闭会话,退出

6.C->S:TEARDOWN request      //C请求关闭会话

6.S->C:TEARDOWN response //S回应该请求

上述的过程只是标准的、友好的rtsp流程,但实际的需求中并不一定按此过程。

其中第三和第四步是必需的!第一步,只要服务器客户端约定好,有哪些方法可用,则option请求可以不要。第二步,如果我们有其他途径得到媒体初始化描述信息(比如http请求等等),则我们也不需要通过rtsp中的describe请求来完成。

时间: 2024-10-30 11:23:18

转:简单的RTSP消息交互过程的相关文章

HTTPS协议,SSL协议及完整交互过程

文章转自 https://blog.csdn.net/dfsaggsd/article/details/50910999 SSL 1.        安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议. 2.    SSL协议的三个特性 ?  保密:在握手协议中定义了会话密钥后,所有的消息都被加密. ?  鉴别:可选的客户端认证,和强制的服务器端认证. ?  完整性:传送的消息包括消息完整性检查(使用MAC). 3.    SSL的

分布式数据库中间件–(3) Cobar对简单select命令的处理过程

友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在上一篇中介绍了Cobar和client初次建立连接的过程,Cobar监听端口,client发起连接请求,Cobar发送握手数据包,client发送认证数据包最后依据认证的结果Cobar向client发送认证结果. 在认证成功后Cobar会将该连接的回调处理函数由FrontendAuthenticat

运用socket实现简单的服务器客户端交互

Socket解释: 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意思.通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信.在Internet上的主机一般运行了多个服务软件,同时提供几种服务.每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务.Socket正如其英文原意

SSL交互过程

SSL交互过程 HTTPS将HTTP和SSL结合,即加了SSL隧道封装的HTTP,通过SSL对客户端身份和服务器进行验证,对传输的数据进行加密.不同情况下SSL的协商过程存在差异,本节以只验证服务器为例介绍.SSL的协商过程如图1所示. 图1 SSL协商过程  客户端发送的第一条消息为ClientHello,其中包含了客户端所推荐的加密参数和准备使用的加密算法. 服务器以三条消息进行响应: 发送选择加密算法的ServerHello. 服务器发送携带自己公钥的Certificate消息. 服务器发

ASP.NET运行机制原理 ---浏览器与IIS的交互过程 自己学习 网上查了下别人写的总结的很好 就转过来了 和自己写的还好里嘻嘻

一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电脑上的一个 WEB服务器软件来接收处理,它会分析接收到的请求信息,从而按照请求信息来找到服务器电脑上的文件,经过处理,最终将生成的内容发回到浏览器. 简单的说就是:由浏览器生成一条“命令”,通过互联网发给另一台电脑的某个软件(服务器软件):服务器软件接收到“命令”,就分析理解这个“命令”,然后按

V4L2用户空间和kernel层driver的交互过程

V4L2用户空间和kernel层driver的交互过程 这篇文章详细分析了V4L2用户空间和kernel层driver的交互过程,目的只有一个: 更清晰的理解V4L2视频驱动程序的系统结构,驱动编程方法,为以后开发视频驱动打好基础 既然从用户层出发探究驱动层,这里先贴出应用层code: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include

简单了解一下c编译过程

大一的时候,学习c语言,用的是VC6.0.用了1年多,到后来了解了Linux,知道了gcc编译器,开始使用gcc Hello.c -o a.out 这样的命令进行编译.后来又学了gcc的一些其他的命令,不同的命令可以编译出不同的目标代码.现在想想类似于VC这种IDE虽然方便,但是对于具体是怎样的一个过程就不得而知了.作为一个优秀的程序员怎么可以不了解这个过程呢. Gcc/g++ 在执行编译工作的时候,总共4步 1.预处理,生成.i的文件  (预处理器cpp) 2.将预处理后的文件转换成汇编语言,

第6课第2节_Binder系统_驱动情景分析_打印数据交互过程

添加宏: 功能:把NAME(n) 中的n作为字符串返回,eg:BR_NOOP作为字符串返回 BR开头:Binder--->IPC BC开头:IPC------>Binder #define NAME(n) case n: return #n const char *binder_cmd_name(uint32_t cmd) { switch(cmd) { NAME(BR_NOOP); NAME(BR_TRANSACTION_COMPLETE); NAME(BR_INCREFS); NAME(B

微信开发之消息的接收与相应--消息交互基础(四)

一.消息交互流程 1.用户通过微信客户端向公众号发送消息,消息首先会被微信服务器接收到 2.微信服务器接收到消息后,会根据开发者在接口配置信息中填写的URL,将消息通过HTTP POST发送到公众号服务器 3.公众号服务器接收到消息后,会根据相应的逻辑进行处理 4.处理完成后,公众号服务器会将处理结果发送到微信服务器, 5.微信服务器将公众号服务器返回的消息通过公众账号发送给用户 二.消息的分类 1.请求消息  请求消息是指用户发送给公众号的消息,包括文本消息,图片消息,语音消息,视频消息,地理