上一篇,我们介绍了sdp相关信息,接下来开始我们介绍RTSP相关的选项,本篇我们首先来看一下OTPION选项。
OPTION(request)
我们在RTSP消息格式中讲过,rtsp分为request和response两大类消息,OPTION是一个request消息,其格式如下图:
我们来详细说下各个字段:
OPTIONS:标识请求命令的类型;
RTSP URI:请求的服务端的URI,以rtsp://开头的地址,一般为rtsp://ip:554(rtsp默认端口号);
RTSP VER:标识RTSP 版本号,一般常见RTSP/1.0;
CSeq:数据包序列号,由于OPTIONS一般而言为RTSP请求的第一条指令,一般而言,针对OPTIONS,该值为1;
User-Agent:用户代理;
我们来看一个抓包文件:
该抓包文件中,OPTIONS请求的服务器的URI为rtsp://192.17.1.63:554;RTSP的版本号为RTSP/1.0;CSeq为数据包的序列号,由于是第一个请求包,此处为1;User-Agent用户代理的值为Lavf58.42.100。
OPTIONS的功能
OPTIONS一般为RTSP客户端发起的第一条请求指令,该指令的目的是得到服务端提供了哪些方法!
OPTION(response)
回复消息的结构
OPTIONS的回复遵循RTSP response消息的格式,第一行回复RTSP的版本,状态码,状态描述;然后是序列号,与OPTION请求中的序列号相同;之后是Public字段,用于描述服务器当前提供了哪些方法;最后是Date字段,表示日期。
我们来看一个抓包文件:
抓包文件中:
回复的消息中RTSP版本为RTSP/1.0,
状态码为200, 表示正常,
状态描述字符为OK;
CSeq的值为1,与OPTIONS请求中的序列号一致;
Public表示了服务端支持的方法,此处有OPTIONS,DESCRIBE,PLAY,PAUSE,SETUP,TEARDOWN,SET_PARAMERTER,GET_PARAMETER,表示RTSP服务器支持这些方法;
Date表示日期和时间。
OPTION example
最后放一个完整的OPTIONS请求的示例:
请求
OPTIONS rtsp://192.17.1.63:554 RTSP/1.0\r\n
CSeq: 1\r\n
User-Agent: Lavf58.42.100\r\
回复
RTSP/1.0 200 OK\r\n
CSeq: 1\r\n
Public: OPTIONS, DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN, SET_PARAMETER, GET_PARAMETER\r\n
Date: Fri, Apr 10 2020 19:07:19 GMT\r\n
好了,关于OPTION请求的介绍和描述就到这里了,下一篇我们介绍RTSP中的DESCRIBE消息,欢迎持续关注哦!
扫码关注了解更多,还有交流群哦!