jrtplib接收rtcp_印象笔记是哪国的

jrtplib接收rtcp_印象笔记是哪国的原博主博客地址:https://blog.csdn.net/qq21497936本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84785284目录前话2019年12月6日补充JRTPLIB介绍CMake介绍JThread编译步骤一:下载JThread1.3.1并解压,如下图:步骤二:新建jthre…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84785284

目录

前话

2019年12月6日补充

JRTPLIB介绍

CMake介绍

JThread编译

步骤一:下载JThread1.3.1并解压,如下图:

步骤二:新建jthread-1.3.1_build文件夹,打开CMake设置好源码路径和编译路径,如下图:

步骤三:点击Configure配置编译环境和环境变量(笔者使用环境为VS2017)

步骤四:点击Generate、打开工程

步骤五:编译release和debug


无线同屏技术开发支撑技术

JRtplib开发笔记(一):JRtplib简介、JThread库编译》: https://blog.csdn.net/qq21497936/article/details/84785284
JRtplib开发笔记(二):JRtplib库编译、示例演示》: https://blog.csdn.net/qq21497936/article/details/84785593
JRtplib开发笔记(三):JRtplib库编程使用说明》: https://blog.csdn.net/qq21497936/article/details/84957120
JRtplib开发笔记(四):JRtplib的VS开发环境搭建以及Demo》: https://blog.csdn.net/qq21497936/article/details/84957708

 

                  JRtplib开发笔记(一):JRtplib简介、JThread库编译

 

前话

        项目中局域网AP需要达到60个点的同屏,经过多方实测,最终根据实际效果采用rtp+fec,帧率可以达到每秒5-15帧(实测)。

因为应用层使用wpf开发(C#),方案选型时使用了微软提供的rtp库,在项目上线前的实测阶段发现该库存在重大bug(rtpSession会话掉线后,无法再加入,重启软件、重新连接网络都不行,只能重启,且同一时刻启动电脑50台固定随机3-5台出现),该库是微软高度封装的rtp库,无法解决,最终依据之前几个项目的经验,核心库功能库除非必须使用微软提供的库(C#)或者组件。

往后笔者将会尽量使用C、C++和平台编程开发,不论是cpu占用率,内存管控和效率,都有大量的提升,还能移植不同平台。

 

2019年12月6日补充

该方案在2018年11月最终成功同屏,60台在一个AP局域网下,真同屏效果预期达到原先预期,且已经跨windows、linux、android,优化了库底层源码、压缩比以及其他细节,2019年3月至11月随项目改进优化几个版本,优化已超预期效果,目前得到行业内各大客户好评,公开课常用,且仅因为同屏,多客户选择使用我司系统而放弃其他中大厂同类产品。

 

JRTPLIB介绍

        JRtplib是一个用C++编写的面向对象的库,旨在帮助开发人员使用RFC3550中描述的实时传输协议(RTP),该库可以提供接口给开发者实现RTP发送和接收数据,而无需担心SSRC冲突、调度和传输RTCP数据等。用户只需要向库提供发送的有效负载数据,并且味苦提供访问传入的RTP和RTCP数据即可。

        编译JRtplib封装了多平台的多线程,使用起来只需要固定的几个类即可实现跨平台,此处提到JThread库是因为JRtplib中可以支持使用JThread库。

 

CMake介绍

        笔者使用的开发环境是VS2017, JRTPLIB封装到C库中给C#调用,我们先编译JThread库,需要使用到CMake。

        CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己配置选择开发环境(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。

        Cmake下载地址:http://download.csdn.net/download/qq21497936/10154545

        解压后直接运行cmake-gui.exe

       https://img-blog.csdnimg.cn/20181122150240470.png

       解压后直接运行cmake-gui.exe

       jrtplib接收rtcp_印象笔记是哪国的

JThread编译

        当前版本最新的是1.3.1版本:

        官网地址:http://research.edm.uhasselt.be/jori/page/CS/Jthread.html

        CSDN地址:https://download.csdn.net/download/qq21497936/10826029

步骤一:下载JThread1.3.1并解压,如下图:

        jrtplib接收rtcp_印象笔记是哪国的

步骤二:新建jthread-1.3.1_build文件夹,打开CMake设置好源码路径和编译路径,如下图:

        jrtplib接收rtcp_印象笔记是哪国的

        jrtplib接收rtcp_印象笔记是哪国的

步骤三:点击Configure配置编译环境和环境变量(笔者使用环境为VS2017)

        jrtplib接收rtcp_印象笔记是哪国的

        jrtplib接收rtcp_印象笔记是哪国的

        点击Finished,等待配置:

        jrtplib接收rtcp_印象笔记是哪国的

       修改环境变量,并确认使用静态编译,如下图

        jrtplib接收rtcp_印象笔记是哪国的

(补充:笔者为什么使用静态编译?情景一:项目测试时,50台设备,同样的硬件设备,同样的ghost系统,同样的初始化步骤,存在几台总是出现运行无反应,实际时起来了,但是c/c++库挂了;情景二:此台开发机编译后可直接exe运行,另外一台开发机却exe不行,搭建环境步骤一样,本质原因是C/C++以及系统dll等问题;综合以上原因,直接使用静态编译,避免出现这种因环境造成的运行问题)。

 

步骤四:点击Generate、打开工程

         jrtplib接收rtcp_印象笔记是哪国的

步骤五:编译release和debug

         jrtplib接收rtcp_印象笔记是哪国的

    分别生成debug和release版本

       jrtplib接收rtcp_印象笔记是哪国的

        jrtplib接收rtcp_印象笔记是哪国的

 

 

JRtplib开发笔记(一):JRtplib简介、JThread库编译》: https://blog.csdn.net/qq21497936/article/details/84785284
JRtplib开发笔记(二):JRtplib库编译、示例演示》: https://blog.csdn.net/qq21497936/article/details/84785593
JRtplib开发笔记(三):JRtplib库编程使用说明》: https://blog.csdn.net/qq21497936/article/details/84957120
JRtplib开发笔记(四):JRtplib的VS开发环境搭建以及Demo》: https://blog.csdn.net/qq21497936/article/details/84957708

 

原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/84785284

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164747.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django(26)HttpResponse对象和JsonResponse对象「建议收藏」

    Django(26)HttpResponse对象和JsonResponse对象「建议收藏」HttpResponse对象Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响

    2022年7月30日
    4
  • 频谱分析仪的原理_实时频谱分析仪原理

    频谱分析仪的原理_实时频谱分析仪原理频谱分析仪是分析电路设计的重要工具,可能你没接触过,但是你做CE、RE这些实验的设备都有它的影子,因此对其做深入的了解还是有必要的。了解频谱分析仪的工作原理,明确频谱仪的基本指标,包括频…

    2022年8月11日
    6
  • 免费的天气预报API–谷歌,雅虎,中央气象台

    免费的天气预报API–谷歌,雅虎,中央气象台

    2021年12月4日
    44
  • scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)…

    scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)…今天来讲下scl两个关键的点一、按键事件比如地址I0.0是某个按钮的状态,他只有True和False两个状态,所以我们要获得按下事件需要我们自己模拟。#KeyPress:=”Btn1″ANDNOT#LastKey;#LastKey:=”Btn1″;这样通过对#KeyPress判断是否为True即可获得一次点击事件,相当于|P|把上一次的存起来,然后判断按下,如果你想把按键放在松开时…

    2022年10月6日
    5
  • map改变一个字母是什么_组合总和 leetcode

    map改变一个字母是什么_组合总和 leetcode原题链接给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[ [“ate”,”eat”,”tea”], [“nat”,”tan”], [“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。tclass Solution {public: vector<vector<string>> g

    2022年8月8日
    6
  • 扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x

    扫清盲点,如何正确的从HttpClient 3.x系统升级到HttpClient 4.x如果周期比较长的项目,或者这个项目开发人员换过了好几拨人,很有可能出现一些奇怪的问题,比如一个项目中出现了多种Spring注入bean的方式,不同版本的jar冲突等等爬虫项目有的时候更是过犹不及,拿模拟登陆来说,开发人员的迭代,每个人的风格和技术各不相同,模拟登陆的方式也是五花八门,早在之前看到过一个项目的源码,其中使用HttpClient也是各种风格,虽然官方已经强烈建议使用HttpClie…

    2022年7月22日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号