当前位置: 首页 > news >正文

深圳网站优化方法网站建设花钱少

深圳网站优化方法,网站建设花钱少,中国建筑在线网,装企erp管理系统前言 本文主要介绍以tcp方式实现rtsp拉流。 流程图 流程说明: 客户端发起tcp请求#xff0c;如向真实相机设备请求#xff0c;端口一般默认554#xff1b;tcp连接成功#xff0c;客户端与服务端开始rtsp信令交互#xff1b;客户端收到play命令响应后#xff0c;开启线…前言 本文主要介绍以tcp方式实现rtsp拉流。 流程图 流程说明: 客户端发起tcp请求如向真实相机设备请求端口一般默认554tcp连接成功客户端与服务端开始rtsp信令交互客户端收到play命令响应后开启线程等待接收数据同时开启定时器定时向服务端发送命令用于心跳保活服务端向客户端发送音视频数据客户端接收rtp数据并进行解复用 设计 发送tcp请求 创建socketconnect设置非阻塞设置tcp超时时间 // 建立tcp连接 m_tcpClient std::make_sharedTcpClient(nullptr, this); if (!m_tcpClient.get()|| 0 ! m_tcpClient-TcpCreate()|| 0 ! m_tcpClient-TcpConnectByTime(ip.c_str(), port, 5)|| 0 ! m_tcpClient-TcpSetNoBlock(true)|| 0 ! m_tcpClient-TcpRecvTimeout(10))break;rtsp信令交互 // 创建command类 m_command std::make_sharedCRtspCommand(RTSP_TRANSPORT_RTP_TCP, m_tcpClient, m_func, m_user); if (!m_command.get())break;// 创建rtsp client if(!m_command-CreateRtspClient(m_rtspUrl, username, userpasswd))break;// 发送describe int ret m_command-SendDescribe(); if (0 ! ret)break;补充创建rtsp client发送describe后根据回调进行后续命令操作使用开源库ireader/librtsp进行rtsp信令交互 bool CRtspCommand::CreateRtspClient(const std::string uri, const std::string username, const std::string userpasswd) {if (uri.empty() || username.empty() || userpasswd.empty())return false;rtsp_client_handler_t handler;handler.send SendCallback;handler.rtpport RtpPortCallcback;handler.onannounce AnnounceCallback;handler.ondescribe DescribeCallback;handler.onsetup SetupCallback;handler.onplay PlayCallback;handler.onpause PauseCallback;handler.onteardown TeardownCallback;handler.onrtp RtpDataCallback;m_rtsp rtsp_client_create(uri.c_str(), username.c_str(), userpasswd.c_str(), handler, this);if (!m_rtsp)return false;return true; }启动线程等待接收数据 #define RECV_DATA_SIZE (64*1024*1024)void CRtsp::RtspWorker() {std::shared_ptrchar dataPacket(new char[RECV_DATA_SIZE], std::default_deletechar[]());memset(dataPacket.get(), 0x00, RECV_DATA_SIZE);int recvLen 0;while (m_running){recvLen m_tcpClient-TcpRecv(dataPacket.get(), RECV_DATA_SIZE);if (recvLen 0) // 数据接收失败{break;}if (0 ! m_command-InputData(dataPacket.get(), recvLen)){break;}memset(dataPacket.get(), 0x00, STREAM_DATA_SIZE);} }启动定时器进行心跳保活tcp方式需要 // 创建定时器 m_timer std::make_sharedZDTimer(10, 1000); m_timer-Start();// 开启定时器 m_timer-AddTask(10000, [this]() {// 10s发送一次get parameter命令int count rtsp_client_media_count((rtsp_client_t*)m_rtsp);if (count 0)rtsp_client_get_parameter(m_rtsp, 0, NULL); });// 停止定时器 if (m_timer.get()) {m_timer-Stop();m_timer.reset(); }接收视频数据并解复用使用开源库ireader/librtp库进行rtp数据解复用 // 1.创建解复用器 m_demuxer rtp_demuxer_create(100, profile ? profile-frequency : 90000, payload, encoding.c_str(), RtpPacketCallback, this);// 2. 塞数据 rtp_demuxer_input(m_demuxer, data, len);// 3. 数据回调 static int RtpPacketCallback (void* param, const void* packet, int bytes, uint32_t timestamp, int flags) {// 裸流数据处理 }// 4. 销毁 rtp_demuxer_destroy(m_demuxer);效果
http://www.w-s-a.com/news/218143/

相关文章:

  • 北京做兼职网站文创产品设计流程
  • 南阳做玉器网站wordpress 图片被缩小
  • 自己做网站卖衣服cms做网站容易不
  • 安徽安搜做的网站怎么样手机网站商城建设答辩问题
  • 分析不同网站的优缺点房产网站定制
  • 深圳工业设计大展2021论坛与网站做优化哪个更好
  • 什么网站做招聘比较好网络营销渠道管理
  • 网站建设选择什么模式淘宝网站可以做轮播吗
  • 山西免费网站制作乌市高新区建设局网站
  • 公司网站建设费用会计处理手机app免费下载
  • 网站的做网站的公司网站有些什么内容
  • 网站新类型wordpress 随机文章
  • 电商网站建设会计分录朝阳市网站公司
  • 正邦网站建设 优帮云百姓网征婚
  • 企业网站有哪些举几个例子端午节网站建设目的
  • 南京免费发布信息网站网站建设与管理职责
  • 无锡市建设培训中心网站企业vi设计是啥
  • 宿松网站建设推荐秒搜科技国家官方网站
  • 网站的服务器选择wordpress文章底部加分享
  • 天津专业的网站建设公司阿里云服务器 wordpress
  • 家教辅导培训网站建设中东跨境电商平台有哪些
  • 商城形式的网站需要多少钱做医药商城网站的公司吗
  • 贵阳网站设计zu97彩票创建网站
  • 网站建设与分工的论文足球世界排名
  • 网站首页添加标签如何用模板建站
  • 官方网站包括哪几个网站泰安的网站建设公司哪家好
  • 域名虚拟服务器做网站如何搭建企业网站
  • 用手机做网站服务器口碑好的常州网站建设
  • 摄影网站的设计与实现开题报告太原企业自助建站
  • 做如美团式网站要多少钱做网站怎么去文化局备案