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. vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践

    vue中前进刷新.后退缓存用户浏览数据和浏览位置的实践 2018年07月07日 11:58:40 大灰狼的小绵羊哥哥 阅读数:4492   vue中,我们所要实现的一个场景就是: 1.搜索页面==&g ...

  2. webstorm 格式化代码及常用快捷键 Option+Command+l

    mac 下 webstorm 格式化代码的快捷键 Option+Command+l

  3. python中with语句的使用

    引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用) ...

  4. 软件开发中什么是CI/CD

    持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 持续部署(continuous d ...

  5. 预处理、const、static与sizeof-为什么不把所有的函数都定义成内联函数

    1:内联是以代码膨胀(复制)为代价的,仅仅省去了函数调用的开销,从而提高函数的执行效率.如果执行函数体内代码的时间相比于函数调用的开销较大,那么效率的收获会很小.另一方面,每一处内联函数的调用都要复制 ...

  6. ios-Realm数据库的使用

    [集成 Realm] 本 Demo 使用 OC 创建,所以先进入 Realm 官网 (我记得之前都是有官方中文教程的,但现在最新版没有中文了),到 Objective-C -> Getting ...

  7. 【8583】ISO8583报文解析

    ISO8583报文(简称8583包)又称8583报文,是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分. [报文格式] POS终端上送POS中心的消息报文结构 ...

  8. Pattern Evaluation

    对相关性patten质量的常用分析指标有以下这些 其中,X^2 跟 lift不是null-invariant的,也就是说当~A~B项较多时,这两个指标不是很可靠. 据Jiawei Han所言,Kulc ...

  9. C# WPF ASP.net 上传多文件和数据

    C# WinForm 上传多文件和数据 public static class HttpHelper { private static readonly Encoding DEFAULTENCODE ...

  10. Oracle CDC (Change Data Capture)更新数据捕获——Asynchronous HotLog Mode(附带简单的kettle任务实现数据同步)

    Performing Asynchronous HotLog Publishing Step 1   Source Database DBA: Set the database initializat ...