rtsp协议c语言,rtsp协议编程_TCP协议编程题_c协议编程

887c31fe25c0800c071ab8969bb94646.png

这篇文章主要从几个方面分析EasyDarwin的RTSP内容

RTSP协议概述

wireshark抓包实例分析 一次完整RTSP的交互流程

EasyDarwin项目代码中 RTSP的初始化

EasyDarwin项目代码中 RTSP请求的处理过程

第一部分:RTSP协议

一、RTSP协议概述

RTSP(Real-TimeStream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类。HTTP协议相信大家都比较熟悉了.

RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据的传送可通过RTP/RTCP等协议来完成。

一次基本的RTSP操作过程是:

首先,客户端连接到流服务器并发送一个RTSP描述命令(DESCRIBE)。

流服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。

客户端再分析该SDP描述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令告诉服务器客户端用于接收媒体数据的端口。

流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始在UDP上传送媒体流(RTP包)到客户端。

在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话

二、RTSP 重要方法

7b361ef13bc0bb2b6d06f1b385da9deb.png

使用wireshark抓取的rtsp过程的包

29877c81d74d828083c47c7a295be5e0.png

OPTIONS:

用于得到服务器提供的可用方法,如:

f61877d39e21ed1e2f7d217ee86d02fd.png

服务器的回应信息会在Public字段列出提供的方法。如:

617c3583bdf4e0108ffefc74946e617e.png

DESCRIBE:

客户端向服务器端发送DESCRIBE,用于得到URI所指定的媒体描述信息,一般是SDP信息。客户端通过Accept头指定客户端可以接受的媒体述信息类型。

如:

a0a5cfe595a3cc3a8ed07c21768eb619.png

c2bdea1a99ff501d3e1739e97033f01d.png

OPTIONS 字段后的rtsp://192.168.1.3:554/easytest.mp4 RTSP/1.0\r\n

是请求的Server上的URI资源。

服务器回应URI指定媒体的描述信息:

6d856cdcca5e74f856b2f090ec832e7f.png

Content-Type: application/sdp //表示回应为SDP信息

Content-Length: 1383

//以下为具体的SDP信息

媒体描述是我们分析时常用的。比如m和c

m= (媒体名称和传输地址)

i=* (媒体标题)

c=* (连接信息 — 如果包含在会话层则该字段可选)

b=* (带宽信息)

k=* (加密密钥)

a=* (0个或多个会话属性线路)

媒体初始化是任何基于RTSP系统的必要条件,但RTSP规范并没有规定它必须通过DESCRIBE方法完成。RTSP客户端可以通过以下方法来接收媒体描述信息:

a) 通过DESCRIBE方法;

b) 其它一些协议(HTTP,email附件,等);

c) 通过命令行或标准输入设备

SETUP:

用于确定转输机制,建立RTSP会话。客户端能够发出一个SETUP请求为正在播放的媒体流改变传输参数,服务器可能同意这些参数的改变。若是不同意,它必须响应错误”455 Method Not Valid In This State”。

Request中的Transport头字段指定了客户端可接受的数据传输参数;Response中的Transport 头字段包含了由服务器选出的传输参数。

如:

90c6654d5e42400d1825039b0adfd374.png

Transport: RTP/P;unicast;client_port=63086-63087

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/tongxinshuyu/article-47689-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值