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

基于OSip协议栈的GB28181视频平台--jrtp传输过程中作为接收方不发送rtcp包问题处理

        在一次项目对接过程中,我方做为上级平台,对方作为下级平台,注册、取流、云台控制都没有问题,但是过1分钟后对方就会主动把视频流关闭,和对方沟通数次后确定问题在rtcp数据包上,因为我们没有及时把rtcp包发给对方导致对方以为上级平台故障,从而主动关闭视频流。

        那么通过jrtp库怎么发送rtcp包呢?

        通过查阅jrtplib官方资料,只要编译时增加“RTP_SUPPORT_SENDAPP”参数,编译出来的库文件就会自动发送rtcp数据包。按照官方介绍和案例程序修改完后发现作为发送方会发送rtcp包,但是作为接收方不会发送,最终根据对源代码的跟踪发现问题出现在AddDestination函数上,根据常规理解,作为发送方时我们需要调用AddDestination,目的是告诉jrtplib对方是谁,把数据发送在哪里就可以了。但实际情况是当jrtplib本身做为接收方时也需要调用AddDestination,这样程序才能知道把rtcp数据发送到哪里。

        最终添加完AddDestination后,根据抓包文件可以看出正常发送rtcp数据了。对接成功。示例代码如下:

void RtpRecvSession::addMediaSource(std::string mediaSourceIp, unsigned short mediaSourcePort)
{uint32_t destip = inet_addr(mediaSourceIp.c_str());if (destip == INADDR_NONE){LOG_OUT(LOG_LEVEL_INFO,  "Bad IP address specified");return;}destip = ntohl(destip);jrtplib::RTPIPv4Address addr(destip, mediaSourcePort);AddDestination(addr);
}

    对于jrtplib发送rtcp数据的总结如下:

1、编译时增加“RTP_SUPPORT_SENDAPP”参数;

2、代码中增加AddDestination函数调用;

http://www.dtcms.com/a/611543.html

相关文章:

  • java加密启动报错
  • SpringAOP、连接点、通知类型、通知顺序、切入点表达式
  • 平面设计师参考网站开发公司总经理竞聘报告
  • 手机可以看的网站如何查看网站是什么语言做的
  • 电源完整性11-电容安装电感的影响因素
  • 手机如何做车载mp3下载网站互联网公司排名深信服
  • 电商网站建设定制北京网站定制价格表
  • 水利网站建设管理汇报广告网站制作多少钱
  • 新建茶叶网站文章内容建设电子商务网站建设工资
  • SAP 如何恢复电子表格EXCEL导出允许选择格式
  • 瓦房店 网站建设二级域名怎么解析
  • 国外做化学申报的网站文化类网站是不是休闲娱乐类网站
  • 最新版LangChain 1.0快速入门介绍
  • 广州开发网站服务设计一个电商网站的首页
  • 单页网站开发网站开发初学
  • 怎样建公司网站有什么网站可以做宣传图片
  • 易缴缴:开启注册资金实缴无忧新时代
  • Java基础——数组1
  • 关于做公司网站成都企业管理培训课程
  • 新开传奇手游发布网站网站首页设计多少钱
  • 设计企业门户网站org是国外的网站吗
  • ACL 2025论文分享|一种同时支持文字、语音、草图、艺术图和低分辨率图等多模态内容检索的新框架Uni-Retrieval
  • 免费在线网站xp系统建设网站
  • 专利协会网站建设方案cpu占用超出网站空间的分配值
  • Kubernetes 证书以及证书续期、过期处理
  • 单页面竞价网站厦门湖里区建设局网站
  • YOLOv5 详细讲解文档
  • 计算机网络技术网站开发优化好的网站
  • 网站备案账号是什么石家庄微网站建设
  • 营销网站和展示型网站维护一个网站