【RTSP/RTP流媒体】9、编写简单的RTSP服务器

9.1、RTSP服务器类结构


类名

功能

CThread

线程类,用于创建线程

CSock

套接字基类

CListenSock

监听套接字类,继承自CSock,用于监听并创建新的套接字

CTcpSock

TCP套接字类,继承自CSock,完成TCP连接、数据收发

CUdpSock

UDP套接字类,继承自CSock,完成UDP数据包收发

CRtspSvr

RTSP服务,创建并管理RTSP会话

CRtspSession

RTSP会话类,处理RTSP请求、响应

CDataSrc

数据源类,完成RTP打包

CTsFileReader

TS文件读取类,完成TS文件数据的读取

9.2、RTTSP服务器时序


l  USER调用CRtspSvr::Start启动RTSP服务。

l  RTSP CLIENT请求建立TCP连接。

l  CRtspSvr创建CRtspSession对象。

l  CRtspSvr调用CRtspSession::Start启动RTSP会话。

l  RTSP CLIENT发送OPTIONS请求。

l  CRtspSession生成OPTIONS响应并回复。

l  RTSP CLIENT发送DESCRIBE请求。

l  CRtspSession调用CDataSrc::Init初始化数据源。

l  CDataSrc调用CTsFileReader::Init打开并初始化TS文件。

l  CDataSrc调用CTsFileReader::GetRange获取TS文件时长。

l  CRtspSession调用CDataSrc::GetSdp获取SDP信息。

l  CRtspSession生成DESCRIBE响应并回复。

l  RTSP CLIENT发送SETUP请求。

l  CRtspSession生成SETUP响应并回复。

l  RTSP CLIENT发送PLAY请求。

l  CRtspSession调用CDataSrc::GetRange获取媒体时长。

l  CRtspSession调用CDataSrc::PerPlay播放前准备。

l  CDataSrc调用CTsFileReader::SeekByTime将文件定位到对应位置。

l  CRtspSession调用CDataSrc::GetMediaInfo获取媒体信息。

l  CRtspSession调用CDataSrc::Play开始打包并发送数据。

l  CRtspSession生成PLAY响应并回复。

l  RTSP CLIENT发送PAUSE请求。

l  CRtspSession调用CDataSrc::Pause暂停发送数据。

l  CRtspSession生成PAUSE响应并回复。

l  RTSP CLIENT发送TEARDOWN请求。

l  CRtspSession调用CDataSrc::Pause暂停发送数据。

l  CRtspSession生成TEARDOWN响应并回复。

l  CRtspSession回调CRtspSvr::notify_fun通知CRtspSvr。

l  CRtspSvr销毁CRtspSession对象。

9.3、RTSP服务器源码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值