音视频之RTSP协议简介

RTSP简介

RTSP协议以客户端/服务器方式工作,如:暂停/继续、后退、前进等。它是一个多媒体播放控制协议,用来控制用户在播放从因特网下载的实时数据,因此 RTSP 又称为“因特网录像机遥控协议”。

RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。 是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学, 网景和RealNetworks公司提交的IETF RFC标准. 对应的RFC编号是2326,可以在这里搜索 https://www.rfc-editor.org/search/rfc_search_detail.php

RTSP协议定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据.。

RTSP在体系结构上位于RTP和RTCP之上, 它使用TCP或UDP完成数据传输。

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

该协议基于C/S模型, 是一个基于文本的协议, 用于在客户端和服务器端建立和协商实时流会话。.

RTSP是类似http的应用层协议,一个典型的流媒体框架网络体系可参考下图:

RTSP协议特点

可扩展性: 新方法和参数很容易加入RTSP。易解析: RTSP可由标准HTTP或MIME解析器解析。安全: RTSP使用网页安全机制。独立于传输: RTSP可使用不可靠数据报协议(EDP), 可靠数据报协议(RDP); 如要实现应用级可靠, 可使用可靠流协议。多服务器支持: 每个流可放在不同服务器上, 用户端自动与不同服务器建立几个并发控制连接, 在传输层执行媒体同步。记录设备控制: 协议可控制记录和回放设备。流控与会议开始分离: 仅要求会议初始化协议提供, 或可用来创建唯一会议标识号. 特殊情况下, 可用SIP或H.323来邀请服务器入会。适合专业应用: 通过SMPTE时标, RTSP支持帧级精度, 允许远程数字编辑。演示描述中立: 协议没强加特殊演示或元文件, 可传送所用格式类型; 然而, 演示描述至少必须包括一个RTSP URL。代理与防火墙友好: 协议可由应用和传输层防火墙处理. 防火墙需要理解SETUP方法, 为UDP媒体流打开一个“缺口”。HTTP友好: 此处, RTSP明智地采用HTTP观念, 使现在结构都可重用. 结构包括Internet内容选择平台(PICS). 由于在大多数情况下控制连续媒体需要服务器状态, RTSP不仅仅向HTFP添加方法。适当的服务器控制: 如用户启动一个流, 必须也可以停止一个流。传输协调: 实际处理连续媒体流前, 用户可协调传输方法。性能协调: 如基本特征无效, 必须有一些清理机制让用户决定哪种方法没生效. 这允许用户提出适合的用户界面。

一次基本的RTSP操作过程:

首先,客户端连接到流服务器并发送一个RTSP描述命令(DESCRIBE)。流服务器通过一个SDP描述来进行反馈,反馈信息包括流数量、媒体类型等信息。客户端然后分析该SDP描述,并为会话中的每一个流发送一个RTSP建立命令(SETUP),RTSP建立命令(SETUP)告诉服务器当前客户端用于接收媒体数据的端口号。流媒体连接建立完成后,客户端发送一个播放命令(PLAY),服务器就开始使用UDP或者TCP传送媒体流(RTP包)到客户端。在播放过程中客户端还可以向服务器发送命令来控制快进、快退和暂停等。最后,客户端可发送一个终止命令(TERADOWN)来结束流媒体会话。

RTSP协议与HTTP协议区别

RTSP引入了几种新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的协议标识符,RTSP为rtsp 1.0,HTTP为http 1.1;

HTTP是无状态的协议,而RTSP为每个会话保持状态;

RTSP协议的客户端和服务器端都可以发送Request请求,而在HTTP 协议中,只有客户端能发送Request请求。

在RTSP协议中,载荷数据一般是通过外带方式来传送的(除了交织的情况),即通过RTP协议在不同的通道中来传送载荷数据。而HTTP协议的载荷数据都是通过带内方式传送的,比如请求的网页数据是在回应的消息体中携带的。

使用ISO 10646(UTF-8) 而不是ISO 8859-1,以配合当前HTML的国际化;

RTSP使用URI请求时包含绝对URI。而由于历史原因造成的向后兼容性问题,HTTP/1.1只在请求中包含绝对路径,把主机名放入单独的标题域中

音视频之RTSP协议简介相关推荐

  1. Android MediaPlayer支持的音视频格式和协议

    Android MediaPlayer支持的音视频格式和协议 2018年04月18日 18:33:42 阅读数:11127 标签: MediaplayerIjkPlayerAndroid音视频Andr ...

  2. 深入了解音视频开发直播协议RTMP

    说起RTMP协议,相信很多人都比较陌生,这个协议相对HTTP.HTTPS.TCP等我们常见的协议而言,我们在工作中确实较少接触它,但是对现在如火如荼的直播行业,RTMP是一个重要的协议,它在实时音视频 ...

  3. 音视频开发 RTMP协议发送H.264编码及AAC编码的音视频(C++实现)

    RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系F ...

  4. Type-C扩展坞常用料号大全|音视频芯片|cc协议芯片|PD芯片|HUB芯片|网口芯片|音频芯片

    最近一段时间因为重返职场,把市面上做Type-C 接口相关的常用料号做了整理.自己对CS型号的也更加了解,如何进行方案优化,降低BOM成本.慢慢整理,不断学习,持续更新记录,欢迎大家一起谈论学习. 音 ...

  5. 【音视频开发系列】盘点音视频直播RTSP/RTMP推流一定会遇到的各种坑,教你快速解决

    聊聊RTSP/RTMP推流那些坑 1.推流架构分析 2.推流缓存队列的设计 3.FFmpeg函数阻塞问题分析 [音视频开发系列]盘点音视频直播一定会遇到的各种坑,教你快速解决 更多精彩内容包括:C/C ...

  6. 海康威视摄像头播放录像视频(RTSP协议)

    1. 实时摄像头流 旧URL:rtsp://[username]:[password]@[ipaddress]/[videotype]/ch[number]/[streamtype] 如:rtsp:/ ...

  7. VLC捕获网络摄像头视频(rtsp协议)

    工具:笔记本,嵌入式开发板(rk3399c),网络摄像头(Hi3516) 一.笔记本上以VLC获取网络摄像头视频 ① 右下角串流,点击. ② 下一个,这里似乎修改不了,有小伙伴知道怎么修改的可以私聊我 ...

  8. 音视频技术开发周刊 | 252

    每周一期,纵览音视频技术领域的干货. 新闻投稿:contribute@livevideostack.com. 13款用于Web的流行HTML5视频播放器 当视频流媒体席卷通信世界,为了保持和提升用户增 ...

  9. 几种常见音视频传输协议使用总结

    RTSP.RTMP.HTTP.SIP协议是常见的几种音视频解决方案传输协议. (1).RTMP协议 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写. ...

最新文章

  1. C语言找最大的int型数!_只愿与一人十指紧扣_新浪博客
  2. Configuring the Java Virtual Manager (JVM)
  3. 《101 Windows Phone 7 Apps》读书笔记-Silly Eye
  4. Spark:如何替换sc.parallelize(List(item1,item2)).collect().foreach(row={})为并行?
  5. Redis和Memcached整体
  6. 初学者应该如何有效率的系统学习Python开发
  7. pmod ad2 digilent 提供的pmodad2.c和pmodad2.h
  8. 网上支付(支付宝/银联)
  9. lbochs模拟器最新版_bochs模拟器官方下载
  10. 基于 SpringCloud 微服务架构的广告系统(第二部分:广告投放、微服务调用与断路器)
  11. win32编程 C++ 九格拼图游戏
  12. Electron点击右上角关闭按钮隐藏任务栏图标(electron类似杀毒软件的任务栏图标)
  13. kubelet源码分析(五)之 syncPod
  14. 达梦数据库的表空间管理
  15. TSE for SketchUp Pro - 建筑行业
  16. python对数正态分布函数_scipy,对数正态分布-参数
  17. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装)
  18. 25A - IQ test
  19. 为程序添加windows注册表
  20. 安信可VC系列语音识别的使用教程

热门文章

  1. python读取多行json_如何在Python中读取包含多个JSON对象的JSON文件?
  2. squid 的配置详解 (转)--SeriesI
  3. 单片机的内存分配(变量的存储位置)详解
  4. 计算机学情分析,中职学生的学情分析 《计算机专业》.doc
  5. linux收集完整技术支持信息的命令有,Linux下常用的日志收集命令(RedhatSuSe)
  6. Homework1_3015218130_许鹏程
  7. centos 7.2安装 lnmp一键安装
  8. WPF中查看PDF文件 - 基于开源的MoonPdfPanel (无需安装任何PDF阅读器)问题汇总
  9. 【final】站立会议---11.27
  10. Android Studio下载