当前位置:   article > 正文

unity socket传输图片_音视频开发(一)-流媒体数据传输RTSP

unity webgl rmtp rtsp

5144e464caaf6b86514ca33ee26d5be1.png

一、运行流程

视频数据基本是通过网络传输获取的。针对音视频数据量大的特点,有一套专门的网络传输协议RTP/RTSP,它的运行流程是这样的:

3477a4693d8384e96bbc5e21911045c0.png

23716dec9754bcdaa931fa13ddd7a356.png

RTSP

RTSP(Real Time Streaming Protocol)是一款网络控制协议,用来控制流媒体服务器的,并提供了一些命令,如 play, record, pause。play表示服务开始向请求端发送流媒体数据,pause表示停止。先贴上一篇文章,非常详细的讲解了rtsp的操作,没接触过的童鞋可以了解一些。RTSP交互命令简介及过程参数描述

以下是客户端同流媒体服务器交互的完整示例,采用WireShark抓包(192.168.0.107->客户端,192.168.0.103->服务端,图片在网页上显示过小,需要保存到本地看):

cfb4f1ccc47d99d4d0b403dd8d2aaca5.png

图书中第二部分为RTSP交互的过程,命令的发送顺序为:OPTIONS、DESCRIBE、SETUP(两次)、PLAY。当PLAY命令发送后,就进入了第三部分RTP协议传输的流媒体数据包。

简单的rtsp交互过程:(C表示rtsp客户端,S表示rtsp服务端)

1.C->S:OPTION request //询问S有哪些方法可用
1.S->C:OPTION response //S回应信息中包括提供的所有可用方法
2.C->S:DESCRIBE request //要求得到S提供的媒体初始化描述信息
2.S->C:DESCRIBE response //S回应媒体初始化描述信息,主要是sdp
3.C->S:SETUP request //设置会话的属性,以及传输模式,提醒S建立会话
3.S->C:SETUP response //S建立会话,返回会话标识符,以及会话相关信息
4.C->S:PLAY request //C请求播放
4.S->C:PLAY response //S回应该请求的信息
5.S->C:发送流媒体数据
6.C->S:TEARDOWN request //C请求关闭会话
6.S->C:TEARDOWN response //S回应该请求

根据rtsp协议传输的步骤,使用tcp协议封装rtsp的发送的参数,即可实现视频传输的控制。tcp与udp的通信采用的是第三方库CocoaAsyncSocket

代码分析:

  1. #import "RTSPConnection.h"
  2. #import "RTPReceiver.h"
  3. #import "CocoaAsyncSocket.h"
  4. #define HOST @"192.168.0.102" //camera
  5. //#define HOST @"192.168.0.111
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/114148
推荐阅读
相关标签
  

闽ICP备14008679号