RTSP协议概况

简单的交互命令就能实现RTSP对接,C代表Client S代表Server

例如:C1-客户端发的第一个命令 S1-服务器响应的第一个回复

【C1】OPTIONS rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

【S1】RTSP/1.0 200 OK

【C2】DESCRIBE rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

【S2】RTSP/1.0 200 OK

【C3】SETUP rtsp://10.8.164.145/ch1/main/av_stream/trackID=1 RTSP/1.0

【S3】RTSP/1.0 200 OK

【C4】SETUP rtsp://10.8.164.145/ch1/main/av_stream/trackID=2 RTSP/1.0

【S4】RTSP/1.0 200 OK

【C5】PLAY rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

【S5】RTSP/1.0 200 OK

【C6】TEARDOWN rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

【S6】RTSP/1.0 200 OK

1.      请求OPTION

C1OPTIONS

OPTIONS rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

CSeq: 5

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="29f1b8fae9acf74fc8f4c2487f8ce6ce"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

询问RTSP服务器有哪些命令可以使用

S1Reply

RTSP/1.0 200 OK

CSeq: 5

Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE

服务器回应客户端的请求。这个回应第一行为OK,则表明服务器接受查询命令,并且反馈给客户端信息,可以使用的命令有:OPTIONS, DESCRIBE, PLAY, PAUSE, SETUP, TEARDOWN, SET_PARAMETER, GET_PARAMETER,则下一步就可以向服务器发送这些命令,如果没有,则服务器不接收这些命令。

2.      认证请求资源描述DESCRIBE

【C2】DESCRIBE

DESCRIBE rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

CSeq: 6

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="f493d85860c733643783636bc1f8f050"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

Accept: application/sdp

发送具有认证标识的信息到服务器,去获取服务器的资源列表。

S2Reply:

RTSP/1.0 200 OK

CSeq: 6

Content-Type: application/sdp

Content-Length: 561

v=0

o=- 1109162014219182 0 IN IP4 0.0.0.0

s=HIK Media Server

i=HIK Media Server Session Description : standard

e=NONE

c=IN IP4 0.0.0.0

t=0 0

a=control:*

a=range:npt=0.0-

m=video 0 RTP/AVP 96

i=Video Media

a=rtpmap:96 H264/90000

a=fmtp:96 profile-level-id=4D0014;packetization-mode=0;sprop-parameter-sets=Z00AH5WoFAFuQA==,

a=control:trackID=1

m=audio 0 RTP/AVP 0

i=Audio Media

a=rtpmap:0 PCMU/8000

a=control:trackID=2

a=Media_header:MEDIAINFO=494D4B48010100000400000110710110401F000000FA000000000000000000000000000000000000;

a=appversion:1.0

首先第一行给了OK,表明上一个命令成功--DESCRIBE成功得到服务器认证

其次,给出了服务器的媒体信息-具有两路码流--音频(audio)和视频(video) 并给出了请求两路数据的地址

3.      请求视频资源

C3SETUP

SETUP rtsp://10.8.164.145/ch1/main/av_stream/trackID=1 RTSP/1.0

CSeq: 7

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="461640905696ab12dcbb3cac681f18fa"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

Transport: RTP/AVP;unicast;client_port=59740-59741

请求获取流媒体服务器上的视频资源 并告知服务器可以往客户端56740端口发送视频数据,56741为RTCP接收端口,发送方式为单播。传输方式为UDP

**********************传输方式与Transport string的对应关系**********************

UDP传输:Transport:RTP/AVP

TCP传输:Transport:RTP/AVP/TCP

RAW UDP传输:Transport:RAW/RAW/UDP

****************************************************************************************

S3Reply

RTSP/1.0 200 OK

Session: 583714312

Transport: RTP/AVP;unicast;client_port=59740-59741;server_port=62028-62029;ssrc=22cac608

CSeq: 7

服务器同意发送视频数据给客户端 56740为视频接收端,56741为RTCP接收端口,发送方式为单播。传输方式为UDP

4.      请求音频资源

C4SETUP

SETUP rtsp://10.8.164.145/ch1/main/av_stream/trackID=2 RTSP/1.0

CSeq: 8

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="461640905696ab12dcbb3cac681f18fa"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

Transport: RTP/AVP;unicast;client_port=59742-59743

Session: 583714312

请求获取服务器上的音频资源 并告知服务器可以往客户端56742端口发送视频数据,56743为RTCP接收端口,发送方式为单播。传输方式为UDP

S4Reply

RTSP/1.0 200 OK

Session: 583714312

Transport: RTP/AVP;unicast;client_port=59742-59743;server_port=62030-62031;ssrc=22cac609

CSeq: 8

服务器同意发送音频数据给客户端 56742为视频接收端,56743为RTCP接收端口,发送方式为单播。传输方式为UDP

5.      开始数据接收

C5PLAY

PLAY rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

CSeq: 9

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="8ee54555450f6ddfec5841379e30313f"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

Session: 583714312

Range: npt=0.000-

告知服务器一切准备就绪,数据可以发过来!

S5Reply

RTSP/1.0 200 OK

Session: 583714312

CSeq: 9

服务器告知客户端,朋友我已经送数据过来了,你可以接收了!

这个时候我们打开Wireshark,在过滤栏输入rtp,可以看到如下数据,表明服务器已经向客户端的56740、56742端口发送数据

6.      关闭播放

C6TEARDOWN

TEARDOWN rtsp://10.8.164.145/ch1/main/av_stream RTSP/1.0

CSeq: 10

Authorization: Digest username="admin", realm="TIGERYIN", nonce="05821411a3fea112e108c76a10a02860", uri="rtsp://10.8.164.145/ch1/main/av_stream", response="4a6b541848b9d1c37e31f87797b32188"

User-Agent: LibVLC/2.2.0 (LIVE555 Streaming Media v2014.07.25)

Session: 583714312

关闭数据传输 释放服务器资源 如果需要重新获取码流 则需要从1~5再来一次

S6Reply

RTSP/1.0 200 OK

CSeq: 10

Session: 583714312

Connection: close

服务器已经成功关闭当前链接

RTSP协议概况的更多相关文章

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

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

  2. HTTP协议/RTSP协议/RTMP协议的区别

    RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP, ...

  3. 从RTSP协议SDP数据中获得二进制的SPS、PPS

    在RTSP协议的交互过程中,第二步客户端发送DESCRIBE请求之后,服务端会返回SDP内容,该SDP内容中有关于媒体和会话的描述,本篇文章主要给出如何从SDP字符串中得到H264视频信息中的sps. ...

  4. RTSP协议详解

        RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议.RTSP对流媒体提 ...

  5. RTSP 协议分析

    RTSP 协议分析1.概述: RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwor ...

  6. RTSP协议、RTMP协议、HTTP协议的区别

    理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. RTSP. RTMP.HTT ...

  7. RTSP协议学习笔记

    一.        RTSP协议概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似. RTSP ...

  8. 【转】RTSP协议学习笔记

    第一部分:RTSP协议 一. RTSP协议概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似. ...

  9. RTSP协议分析

    RTSP 协议分析 1.概述:  RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetw ...

随机推荐

  1. PHP mysqli_info() 函数

    定义和用法 mysqli_info() 函数返回有关最近执行查询的信息. 该函数作用于下列查询类型: INSERT INTO...SELECT... INSERT INTO...VALUES (... ...

  2. Help Me Escape

    题目: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4808 题意: 师傅被妖怪抓走了.有n个妖怪,每个妖怪有一个固定的战斗力 ...

  3. delphi将两个Strlist合并,求交集 (保留相同的)

    Function StrList_Join(StrListA,StrListB:String):String; //将两个Strlist合并,求交集 (保留相同的) var SListA,SListB ...

  4. cropbox.js 头像裁剪插件

    cropbox.js 一个轻量级和简单的JavaScript,Jquery,YUI插件来裁剪您的头像. 特征 支持dataUrl显示图像(函数getDataURL) 支持Blob上传图片(函数getB ...

  5. 转载像元素周期表一样的html5的标签图集

    转载请注明出处. HTML5标签集合

  6. 百度AI接口调用

    创建应用 登录网站 登录www.ai.baidu.com 进入控制台 进入语音技术 创建应用 管理应用 技术文档 SDK开发文档 接口能力 版本更新记录 注意事项 目前本SDK的功能同REST API ...

  7. AGC033D Complexity

    题意 给出一个\(n*m\)的\(0,1\)矩阵,若一个矩阵中的所有元素都相同,则这个矩阵的代价为\(0\),如果不是则选择一种将它分成两个子矩阵的方案,代价为所有方案中(两个子矩阵的代价的较大值+\ ...

  8. CF1204A

    CF1204A. BowWow and the Timetable 题意: 给你一个2进制数,求这个2进制数在10进制中的 $ 4^i $ 的个数. 解法: 其实就是 $ \ulcorner_{\lo ...

  9. Postgresql 直接在查询结果中生成唯一ID

    不需要排序 select (row_number() over()) as id from generate_series(1,100)1根据指定的字段排序 select (row_number() ...

  10. 在HearthRanger中使用Silverfish

    I'm new here and have never used this bot before. But a few days ago I tried it and I liked it :) I ...