流媒体协议---RTSP协议

RTSP(Real Time Streaming Protocol) 应用层协议—流媒体服务器远程控制0、其语法和运作和http 1.1相似1、提供流媒体服务器的远程控制(提供了诸如暂停,快进等控制,而它本身并不传输数据) 服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。2、允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,还可以支持多方视频会议(Video onference
摘要由CSDN通过智能技术生成

华为RTSP协议文档
RTSP开发相关文档汇集

RTSP over UDP与RTSP over TCP取流对比

1、RTSP(Real Time Streaming Protocol) 应用层协议—流媒体服务器远程控制

0、其语法和运作和http 1.1相似
1、提供流媒体服务器的远程控制(诸如暂停,快进等控制,而它本身并不传输数据)
	服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。
2、允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,还可以支持多方视频会议(Video  onference)。 
//因为与HTTP1.1的运作方式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

【RTSP/RTP/RTCP/SDP】协议详解

1.1 rtsp和http的区别和联系

相同点:均用纯文本来发送消息,且语法类似。Rtsp这样设计是为了能够兼容使用以前的HTTP协议代码 。

区别:
rtsp有状态(当前状态影响RTSP的命令的执行)👉rtsp的命令之间有先后依赖关系
	Rtsp不管处于什么状态都不会去断掉连接。
	RTSP协议的双方都能发送reuest请求,而http中只有客户端能发送请求
	
http不保存状态,不保持连接状态(发送命令后连接就会断开),且命令之间没有依赖性。
rtsp协议使用554端口,http使用80端口。
RTSP使用URI请求时包含绝对URI。而由于历史原因造成的向后兼容性问题,HTTP/1.1只在请求中包含绝对路径,把主机名放入单独的标题域中;

在RTSP协议中,载荷数据一般是通过带外方式来传送的(除了交织的情况),及通过RTP协议在不同的通道中来传送载荷数据。而HTTP协议的载荷数据都是通过带内方式传送的,比如请求的网页数据是在回应的消息体中携带的。

1.2 rtsp和sip的区别和联系

SIP(Session Initiation Protocol),是基于IP的一个应用层控制协议。由于SIP是基于纯文本的信令协议,可以管理不同接入网络上的会话等。会话可以是终端设备之间任何类型的通信,如视频会话、既时信息处理或协作会话。该协议不会定义或限制可使用的业务,传输、服务质量、计费、安全性等问题都由基本核心网络和其它协议处理。

1)联系:sip和rtsp都是应用层的控制协议,负责一次通信过程的建立和控制和结束,不负责中间的传输部分。他们都是基于纯文本的信令协议,穿墙性能良好。支持tcp、udp,支持多方通信。他们都需要服务器支持,都支持会话中重定向。sip和rtsp 都使用sdp协议来传送媒体参数,使用rtp(rtcp)协议来传输媒体流。
(2)区别:rtsp是专门为流媒体制定的协议,在多个媒体流的时间同步方面比sip强大。rtsp还提供网络负载均衡的功能,减轻服务器压力和网络带宽要求。sip一般用来创建一次音频、视频通话(双向),而rtsp一般用来做视频点播、视频监控等(单向)。当然,从原理上讲,rtsp也可以做双向的视频通话。

1.3 RTSP和RTP(RTCP)的关系

rtsp负责建立和控制会话,rtp负责多媒体的传输,rtcp配合rtp做控制和流量统计,他们是合作的关系。

在这里插入图片描述

RTSP的URL

rtsp_URL	=	(“rtsp:| “rtspu:)//” host [“:”port”] /[abs_path]/content_name

host:可以是一个有效的域名或是IP地址。
port:端口号,对于RTSP协议来说,缺省的端口号为554,即如HTTP的缺省端口号是80一样。
		当端口号为554时可省略,反之必须在RTSP_URL中指明

2、RTSP的消息 = 请求消息(request) + 回应消息(response)

请求消息格式:

Method 空格 Request-URI 空格 RTSP-Version CRLF
方法 URI RTSP版本 CR LF
消息头 CR LF 
CR LF         
消息体 CR LF

1、Method包括OPTIONS、SETUP、PLAY、TEARDOWN等
2、Request-URI是请求媒体存放的绝对路径	例如:rtsp://192.168.22.136:5000/v0
3、每行后面的CR LF表示回车换行,需要接收端有相应的解析,最后一个消息头需要有两个CR LF。

回应消息格式:

RTSP-Version 空格 Status-Code 空格 Reason-Phrase CRLF
消息头 CR LF 
CR LF
消息体 CR LF


1、RTSP-Version一般都是RTSP/1.0
2、Status-Code是一个三位数,一共有5种:		解释是与状态码对应的文本解释。
	1XX:保留,将来使用;
	2XX:成功,操作被接收、理解、接受(received,understand,accepted);
	3XX:重定向,要完成操作必须进行进一步操作;
	4XX:客户端出错,请求有语法错误或无法实现;
	5XX:服务器出错,服务器无法实现合法的请求。
	常见Status-Code如	“200:OK
						“400:Bad Request
						“404:Not Found
						“500”		Internal Server Error

3、Reason-Phrase:status-Code的文本解释。

实例:
sprintf(pTemp,“RTSP/1.0 200 OK\r\nCSeq: %s\r\n%sRange: npt=0.000-\r\nSession: %d\r\nRTP-Info: url=rtsp://%s/%s;seq=0\r\n\r\n”, cseq,dateHeader(),SessionId,localip,urlPre);
排版后:
RTSP/1.0 200 OK
CSeq: ?
dateHeader()Range: npt=0.000-\r\n
Session: ?
RTP-Info: url=rtsp://本地IP/urlPre;seq=0
\r\n
\r\n

3、RTSP交互方法

rtsp中定义的方法有:OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE, GET_PARAMETER ,SET_PARAMETER

3.1 OPTION:查询服务器端可用方法

C->S:OPTIONrequest //询问S有哪些方法可用
S->C:OPTIONresponse //S回应信息的public头字段中包括提供的所有可用方法

OPTIONS rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
CSeq: 1         //每个消息都有序号来标记,第一个包通常是option请求消息
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)


RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 1         //每个回应消息的cseq数值和请求消息的cs
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值