RTSP协议分析

RTSP协议分析一 简介 RTSP RealTimeStre 实时流传输协议 是 TCP IP 协议体系中的一个基于文本的应用层协议 由哥伦比亚大学 网景和 RealNetworks 公司提交的 IETFRFC2326 标准 该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据 RTSP 在体系结构上位于 RTP 和 RTCP 之上 它使用 TCP 或 UDP 完成数据传输

一.简介

        RTSP(Real Time Streaming Protocol)实时流传输协议,是TCP/IP协议体系中的一个基于文本的应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC2326标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。

        HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而前面提到的允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,更进而支持多方视讯会议(Video Conference)。因为与HTTP1.1的运作方式相似,所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。

        RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。当然,RTSP可基于RTP来传送数据,还可以选择TCP、UDP、组播UDP等通道来发送数据,具有很好的扩展性。RTP是用来提供实时传输的,它建立在UDP之上,因而可以看成是传输层的一个子层。

        目前碰到的一个应用:服务器端实时采集、编码并发送两路视频,客户端接收并显示两路视频。由于客户端不必对视频数据做任何回放、倒退等操作,可直接采用UDP+RTP+组播实现。RTSP协议分析RTSP协议分析

二.RTSP重要术语

5.消息(Message):

        RTSP通信的基本单元,由特定语法结构,序列化的八位字节流组成。

三.RTSP消息格式

1.请求消息

RTSP协议分析

        其中方法包括OPIONS、DESCRIBE、SETUP、PLAY、TEARDOWN等。URL是接接收方的地址,例如:rtsp://192.168.0.1/video.264。RTSP版本一般都是 RTSP/1.0。每行后面的CRLF表示回车换行,需要接收端有相应的解析,最后一个消息头需要有两个CRLF。消息体是可选的,有的请求消息并不带消息体

2.响应消息

RTSP协议分析

        其中RTSP版本一般都是RTSP/1.0。状态码是一个数值,用于表示请求消息的执行结果,比如200表示成功。短语是与状态码对应的文本解释。

四.RTSP重要方法

RTSP协议分析

1.OPTIONS:
用于得到服务器提供的可用方法。
如:

五.RTSP重要首部字段名

1.Accept:
用于指定客户端可以接受的媒体描述信息类型。

六.RTSP消息交互过程

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

1.第一步:查询服务器端可用方法
C->S:OPTIONrequest          //询问S有哪些方法可用
S->C:OPTIONresponse       //S回应信息的public头字段中包括提供的所有可用方法

七.SDP协议

1.SDP协议概述
SDP(Session Description Protocol )会话描述协议,用于描述多媒体会话,它为会话通知、会话初始和其它形式的多媒体会话初始等操作提供服务。它的标准文件是IETF RFC4566。
SDP的设计宗旨是通用性协议,所有它可以应用于很大范围的网络环境和应用程序,但 SDP不支持会话内容协商或媒体编码。它时一个纯粹的会话描述格式,不包含任何传输协议。

会话描述:
☆v= (协议版本)
☆o= (所有者/创建者和会话标识符)
☆s= (会话名称)
☆i=* (会话信息)
☆u=* (URI 描述)
☆e=* (Email 地址)
☆p=* (电话号码)
☆c=* (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
☆b=* (带宽信息)








这里填写一个或多个间描述,具体参考“时间描述”。
☆z=* (时间区域调整)
☆k=* (加密密钥)
☆a=* (0个或多个会话属性线路)


这里填写0个或多个媒体描述,具体参考“媒体描述”。

时间描述:
☆t=   (会话活动时间)
☆r=* (0或多次重复次数)
媒体描述
☆m= (媒体名称和传输地址)
☆i=*  (媒体标题)
☆c=* (连接信息 — 如果包含在会话层则该字段可选)
☆b=* (带宽信息)
☆k=* (加密密钥)
☆a=* (0个或多个会话属性线路)








:给定了会话的发起者信息
s=

:给定了会话名称

i=

:提供了 关于会话的一些信息

u=

:URI(Uniform Resource Identifier)用于网络客户端,它指向了关于会话的额外信息

e=

:Email地址

c=


:包含连接数据

t=


:指定了会话开始和结束的时间

a=

:属性主要用来扩展SDP,通常这种属性是会话的一部分,比如a=recvonly

a=

:

:带值的属性,比如说白板上的内容,a=orient:portrait、a=landscape或者a=seascape。        比较常用的是a=rtpmap:
/

[/

]

m=

:包含许多媒体描述,每个描述都以“m=”开头

参考链接:http://www.ietf.org/rfc/rfc2326.txt

参考链接:RFC 4566 – SDP: Session Description Protocol

参考链接:RTSP协议学习笔记_雷霄骅的博客-CSDN博客_rtsp

参考链接:RTSP协议总结 – 简书

原文链接:https://blog.csdn.net/caoshangpa/article/details/




















版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224471.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:52
下一篇 2026年3月17日 上午11:52


相关推荐

  • 4个主要的map实现类介绍

    4个主要的map实现类介绍一、简单介绍map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap:我们最常用的Map,HashMap的值是没有顺序的,他是按照key的HashCode来实现的,就是根据key的HashCode值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问…

    2022年5月30日
    36
  • setDaemon详解

    setDaemon详解一 线程 JAVA 线程分为即实线程与守护线程 守护线程是优先级低 存活与否不影响 JVM 的退出的线程 实现守护线程的方法是在线程 start 之前 setDaemon true 否则会抛出一个 IllegalThrea 异常 不能操作文件 数据库等资源 避免主线程关闭而未能关闭守护线程的资源 并且它会在任何时候甚至在一个操作的中间发生中断 二 优点及使用场景在主线程关闭

    2026年3月19日
    2
  • Onenote插件,云扩容

    Onenote插件,云扩容目录1.onenote2.插件3.云空间扩容4.onenote教程这些博主找了好久,现在一步到胃。特发布这篇文章,为后来的人指路。onenote各系列,公众号“软件管家”,有365,2016-2021系列,可正常同步。插件onetastic,直接官网免费onenoteclipper同onenotegem珍,有16版的,亲测可用于365版本。复制这段内容打开「百度网盘」APP即可获取链接:https://pan.baidu.com/s/1DtWmSRQ3cy1S6upA6DLU

    2025年10月12日
    11
  • mknod详解

    mknod详解br br mknod makeblockorc mknod OPTION NAMETYPE MAJORMINOR br nbsp nbsp nbsp option 有用的就是 m 了 br nbsp nbsp nbsp name nbsp nbsp 自定义 br nbsp nbsp nbsp type nbsp nbsp 有 b 和 c 还有 pbr nbsp nbsp nbsp 主设备号 br nbsp nbsp nbsp 次设备号 br br 主设备号是由 usr src linux i

    2026年3月17日
    1
  • 光栅化的理解

    光栅化的理解1 度娘了一下光栅化光栅化就是将图转化为一个个栅格组成的图象 光栅化就是把顶点数据转换为片元的过程 片元中的每一个元素对应于帧缓冲区中的一个像素 光栅化其实是一种将几何图元变为二维图像的过程 该过程包含了两部分的工作 第一部分工作 决定窗口坐标中的哪些整型栅格区域被基本图元占用 第二部分工作 分配一个颜色值和一个深度值到各个区域 光栅化过程产生的是片元

    2026年3月26日
    2
  • 黑盒测试用例设计方法一(等价类划分、边界值分析)

    黑盒测试用例设计方法一(等价类划分、边界值分析)文章目录黑盒测试用例设计方法黑盒测试用例设计方法概述等价类划分法边界值分析法黑盒测试用例设计方法黑盒测试用例设计方法概述测试数据选择等价类划分法边界值分析法测试步骤设计因果图法判定表法正交实验法功能图法场景法等价类划分法等价类划分法原理把程序的输入域划分成若干份,然后从每个部分中选取少数代表性数据作为测试用例每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。反之,如果某一类中的一个例子没有

    2022年6月3日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号