C++ – 使用Spout2将视频流发送到OBS
在之前的博文中介绍了如何配置Spout2的开发环境,在本文中我将简单介绍一下如何使用Spout2发送视频流到OBS中进行推流。 1 使用Spout2 SDK将视频流发送到OBS 其实Spout2已经将API封装的非常简单易用了,通过参考官方的示例,我自己写了以下的代码将视频流推流到本机OBS中,示例…
- C++
- 2023-06-25
Windows编译Spout2以及配置Spout2开发环境
Spout2是一个用于Windows系统的视频帧共享系统,允许应用程序以类似Mac的Syphon的方式共享OpenGL纹理,Spout2支持Direct9、Direct11、Direct12和OpenGL的纹理数据共享。 我们可以基于Spout2进行开发,将我们想要的一些视频帧结合OBS的Spout…
- C++
- 2023-06-20
OpenCV | OpenGL – OpenCV的cv::mat转换为OpenGL的GL_TEXTURE_2D纹理数据
1 OpenCV的cv::Mat转换为OpenGL的GL_TEXTURE_2D纹理数据 在有些场景下我们需要将OpenCV处理之后的cv::Mat转为OpenGL的GL_TEXTURE_2D类型的纹理数据,比如说使用OpenCV读取图片文件作为OpenGL的纹理使用。 在https://gist.g…
- C++
- 2023-06-19
C++ – 根据给定分隔符分割字符串
1 C++根据给定分隔符分割字符串 在对字符串处理的一些简单场景中,需要根据分隔符将字符串进行分割,比如将“1920x1080”根据“x”分割为1920和1080,将"Hello World"根据空格分割为Hello和World。 std标准库没有现成的方法可以调用,不过我们可以自己造一个简单的轮子…
- C++
- 2023-06-13
C++ – 在Visual Studio中使用OpenMP加速for循环
OpenMP(Open Multi-Processing)是一套跨平台的,共享内存方式的多线程并发编程API,OpenMP提供了对并行算法的高层的抽象描述,程序员只需要在代码中加入专用的pragma,在编译时就可以自动将代码进行并行化,并在必要的地方加入同步互斥以及通信。在Visual Stdio已…
- C++
- 2023-06-08
C++ – windows、linux跨平台递归创建多级目录
1 使用C++在windows/linux跨平台递归创建多级目录 比如说我们需要在电脑上创建一个目录,如下 E:\Git\example\niubi\aaa 如果E:\Git\example\niubi\aaa的上一级目录E:\Git\example\niubi没有创建,那么使用常规的创建目录的方法…
- C++
- 2023-04-13
C++ – Windows系统获取桌面路径
1 Windows系统获取桌面路径 可使用以下代码获取桌面路径: #include <iostream> #include <string> #include<Windows.h> #include "shlobj.h" std::string GetDeskto…
- C++
- 2023-04-07
C++ – 从std::string的文件路径中获取文件夹、文件名、文件后缀名
1 C++ - 从std::string的文件路径中获取文件夹、文件名、文件后缀名 从std::string表示的文件路径中获取文件夹、文件名、文件后缀是我们在日常编码中经常会使用的功能。 在Windows系统中,正斜杠和仿斜杠都可以用于表示文件路径,比如说: C:\Users\xx…
- C++
- 2023-03-30
C++/OpenCV – 详解如何一步步将OpenCV的cv::Mat转换成深度学习模型推理所需的输入数据
在视觉任务的深度学习模型的训练过程中,一般需要对数据集中的图片进行预处理,这些操作一般都包括: resize图片大小 转为RGB 归一化到[0,1] 减均值 除方差 在Pytorch中一般使用torchvision.transforms对图片进行归一化处理,比如经常会使用以下的代码 transfor…
- C++
- 2023-03-28
C++ – 获取std::vector中的最小值、最大值以及对应的索引
1 获取std::vector中的最小值、最大值以及对应的索引 1.1 普通方法 普通方法就是遍历std::vector,对vector中的值进行一一对比,找出最小值、最大值及其对应的索引,示例代码如下 #include <iostream> #include <vector>…
- C++
- 2023-03-23
C++ – 使用cuda api获取本机显卡数量和显卡信息
1 使用cuda api获取本机显卡数量和显卡信息 我们可以在C++中结合CUDA API获取本机显卡数量以及每一个显卡的Memory Clock Rate、Memory Bus Width、Peak Memory Bandwidth等信息。 使用cudaGetDeviceCount函数返回连接到此…
- C++
- 2023-03-08
C++ – Windows/Linux跨平台获取本机CPU核心数
1 在Windows/Linux系统获取本机CPU核心数 1.1 使用Windows和Linux上的系统函数获取cpu的核心数 如果需要创建一个使用线程池的服务,那么线程池中的最大工作线程数目最好是少于本机CPU的核心数,这样既能最大化CPU的性能也能避免创建过多线程造成线程调度的开销,保持处理速度…
- C++
- 2023-03-01