10034.RTSP:Real Time Streaming Protocol

2023-11-10 17:39

本文主要是介绍10034.RTSP:Real Time Streaming Protocol,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实时流协议 RTSP 建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交叉是可能的,通常它本身并不发送连续流,如音频与视频。换言之,RTSP 充当多媒体服务器的网络远程控制。RTSP 提供了一个可扩展框架,使实时数据如音频与视频的受控、按需传送成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送会话,为选择发送通道如 UDP、组播 UDP 与 TCP 等提供途径,并为选择基于 RTP 的发送机制提供方法。

  目前还没有具体的 RTSP 连接概念,取而代之的是由服务器维持携带标识符的会话。RTSP 会话没有绑定到传输层连接,如 TCP。在 RTSP 会话期间,RTSP 用户可打开或关闭多个对服务器的可靠传输连接以发出 RTSP 请求。此外,可使用无连接传输协议,如 UDP。

  RTSP 流控制的流可能用到 RTP,但 RTSP 操作并不依赖用于携带连续媒体的传输机制。实时流协议在语法和操作上与 HTTP/1.1 类似,因此 HTTP 的扩展机制大都可加入 RTSP。尽管如此,在很多重要方面 RTSP 仍不同于 HTTP:

  • RTSP 引入了大量新方法并具有一个不同的协议标识符:
  • 在大多数情况下,RTSP 服务器需要维持缺省状态,与的无状态相对;
  • RTSP 中媒体用户和服务器都可以发出请求;
  • 在多数情况下,由不同的协议传送数据;
  • RTSP 被定义来使用 ISO 10646(UTF-8)而并非 ISO 8859-1,与当前的国际标准 HTML 相一致;
  • URI 请求一直包含完全的 URI。由于与历史错误的相互兼容,HTTP/1.1 只在请求过程中传送完全的路径并将主机名置于单个的头字段。

  该协议支持如下操作:

  • 从媒体服务器上检索媒体:用户可通过 HTTP 或其它方法提交一个演示描述;
  • 媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部;
  • 将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。

协议结构

  RTSP 是一种文本协议,UTF-8 编码采用 ISO 10646 字符设置。通过 CRLF 终止线路,但接收端需要做好转换 CR 和 LF 的准备。关于头字段概述如下:


Header

Type

Support

Methods

Accept

R

opt.

entity

Accept-Encoding

R

opt.

entity

Accept-Language

R

opt.

all

Allow

R

opt.

all

Authorization

R

opt.

all

Bandwidth

R

opt.

all

Blocksize

R

opt.

All but OPTIONS, TEARDOWN

Cache-Control

G

opt.

SETUP

Conference

R

opt.

SETUP

Connection

G

req.

all

Content-Base

E

opt.

entity

Content-Encoding

E

req.

SET_PARAMETER

Content-Encoding

E

req.

DESCRIBE, ANNOUNCE

Content-Language

E

req.

DESCRIBE, ANNOUNCE

Content-Length

E

req.

SET_PARAMETER, ANNOUNCE

Content-Length

E

req.

entity

Content-Location

E

opt.

entity

Content-Type

E

req.

SET_PARAMETER, ANNOUNCE

Content-Type

R

req.

entity

CSeq

G

req.

all

Date

G

opt.

all

Expires

E

opt.

DESCRIBE, ANNOUNCE

From

R

opt.

all

If-Modified-Since

R

opt.

DESCRIBE, SETUP

Last-Modified

E

opt.

entity

Proxy-Authenticate

 

 

 

Proxy-Require

R

req.

all

Public

R

opt.

all

Range

R

opt.

PLAY, PAUSE, RECORD

Range

R

opt.

PLAY, PAUSE, RECORD

Referer

R

opt.

all

Require

R

req.

all

Retry-After

R

opt.

all

RTP-Info

R

req.

PLAY

Scale

Rr

opt.

PLAY, RECORD

Session

Rr

req.

All but SETUP, OPTIONS

Server

R

opt.

all

Speed

Rr

opt.

PLAY

Transport

Rr

req.

SETUP

Unsupported

R

req.

all

User-Agent

R

opt.

all

Via

G

opt.

all

WWW-Authenticate

R

opt.

all


  Type "g" 表示请求和响应中的通用请求头;Type "R" 表示请求头;Type "r" 表示响应头;Type "e" 表示实体头字段。注有"support"标签的"req."必须由接收者以特殊的方法实现;而"opt."的实现具有多个选择。注意,不是所有"req."字段在该类型的每个请求中都会被发送。"req."只表示客户机(支持响应头)和服务器(支持请求头)必须执行该字段。最后一栏列出了关于头字段产生作用的方法;其中"entity"针对于返回一个信息主体的所有方法。


相关协议UDPTCPHTTPS-HTTPRTP
组织来源

RTSP 由 IETF(www.ietf.org)定义在 RFC 2326中。

相关链接

http://www.javvin.com/protocol/rfc2326.pdf: Real Time Streaming Protocol

这篇关于10034.RTSP:Real Time Streaming Protocol的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384232

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

linux 下Time_wait过多问题解决

转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

浅析网页不安装插件播放RTSP/FLV视频的方法

早期很多摄像头视频流使用的是RTSP、RTMP协议,播放这类协议的视频通常是在网页上安装插件。但现在越来越多的用户,对于网页安装插件比较反感,且随着移动设备的普及,用户更多的希望使用手机、平板等移动设备,直接可以查看这些协议的视频。那是否有什么方案可以直接网页打开RTSP、RTMP协议的视频,直接观看不用安装插件呢?而且对于摄像头的数据,尽可能低延迟的获取实时画面。  其实很多摄像头厂家也注意到

使用WebRtcStreamer播放rtsp视频

一、使用步骤 1.安装WebRtcStreamer包 代码如下(示例): {"name": "default","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build"},"dependencies": {"core-js":

lua data time

local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., Sep