硬刚live555源码(六)--testRTSPClient之rtsp流程

一、功能描述

RTSP会话的建立有规定了一套流程,标准定义了5个步骤,分别是:OPTION、DESCRIBE、SETUP 、PLAY和TEARDOWN;其中SETUP 和PLAY是必须的步骤。Rtsp播放器必须与rtsp服务器完成上述流程,服务器才会开始媒体数据流的传输。

二、源码和实例分析

官方demo的testRTSPClient.cpp的main非常简单,只有几句代码,其中最关键的是openURL函数,BasicTaskScheduler和BasicUsageEnvironment已经分析过。openURL是与rtsp服务器建立会话的起点。

2.1 main函数

int main(int argc, char** argv) {

  // Begin by setting up our usage environment:

  TaskScheduler* scheduler = BasicTaskScheduler::createNew();

  UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler);

  for (int i = 1; i <= argc-1; ++i) {

    openURL(*env, argv[0], argv[i]);

  }

  env->taskScheduler().doEventLoop(&eventLoopWatchVariable);

  return 0;

}

2.2 Describe命令

函数openURL也很简单,ourRTSPClient之前也分析过了;先创建改类实例,然后发起Describe的命令,等待服务器应答,应答回调函数continueAfterDESCRIBE。

void openURL(UsageEnvironment& env, char const* progName, char const* rtspURL) {

  RTSPClient* rtspClient = ourRTSPClient::createNew(env, rtspURL,

RTSP_CLIENT_VERBOSITY_LEVEL, progName);

  ++rtspClientCount;

  rtspClient->sendDescribeCommand(continueAfterDESCRIBE);

}

发送的命令实例:

服务器应答:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值