• 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 问题反馈可发送邮件到stubbornhuang@qq.com

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

Windows编译Spout2以及配置Spout2开发环境

C++ 发布于2023-06-20 阅读 2,830次 0次评论 0次点赞 本文共2084个字,阅读需要6分钟。

Spout2是一个用于Windows系统的视频帧共享系统,允许应用程序以类似Mac的Syphon的方式共享OpenGL纹理,Spout2支持Direct9、Direct11、Direct12和OpenGL的纹理数据共享。

我们可以基于Spout2进行开发,将我们想要的一些视频帧结合OBS的Spout2插件传递到OBS上进行直播。

Github地址:https://github.com/leadedge/Spout2

官网地址:https://leadedge.github.io/

1 Windows上编译Spout2

我们可以在Github项目的Release下载Spout2的源码,这里以写文章时最新的Spout 2.007.010为例,下载源码

Windows编译Spout2以及配置Spout2开发环境-第0张图片

下载上述的Source code.zip包。解压上述的zip包,然后在根目录下我们可以看到Building the libraries.pdf这个文件,这个文件中有这么一段话

Visual Studio 2017 and 2022 projects are available in the “SPOUTSDK\SpoutGL” folder to build the Spout SDK as a dll.
Equivalent projects can also be found in the “SPOUTSDK\SpoutLibrary” folder to create a Ccompatible dll that can be used with other compilers. Pre-built binaries for 32 bit and 64 bit are also available in the “SPOUTSDK\SpoutLibrary\Binaries" folder.
However, all the libraries can be built using Cmake. (https://cmake.org). This may be preferable if you require dll or static libraries or if you are using a compiler other than Visual Studio.

就是说在SPOUTSDK\SpoutGL这个文件中已经使用了Visual Studio进行了项目组织,直接可以编译成dll。而SPOUTSDK\SpoutLibrary中则是可以被其他编译器编译的兼容性dll。

如果你需要将Spout2作为静态库链接进你的项目,那么就去编译SPOUTSDK\SpoutGL这个项目。如果没有特别要求,那么直接编译SPOUTSDK\SpoutLibrary即可,并且SpoutLibrary还对API进行了简单封装。

SPOUTSDK\SpoutLibrary也是带了VS的工程文件的,我们直接打开Spout2-2.007.010\SPOUTSDK\SpoutLibrary\VS2022\SpoutLibrary.sln这个项目,如果你不是VS2022也没有关系,切换一下版本就行,比如我的使用VS2019,那么只需要在项目属性-常规-平台工具集选择对应的工具集即可,如下图所示。

Windows编译Spout2以及配置Spout2开发环境-第1张图片

不过配置下来发现这个项目配置有点问题,为了方便之后使用,我们首先需要将所有配置-所有平台的目标文件名修改成一致的,我这里是使用的SpoutLibrary作为项目名称,如上图。

然后就按不同平台不同配置分别编译出Win32/x64的Debug/Release版本库就行了。编译完成之后,相应的dll保存在Spout2-2.007.010\SPOUTSDK\SpoutLibrary\VS2022的Win32/x64文件夹下。

2 在VS中配置Spout2开发环境

就像使用C++其他第三方库一样,我们将第1节中编译好的库按include、lib、bin目录分辨放好不同平台不同配置的库,然后在VS工程中配置路径即可,这个步骤比较简单就不再详细说明了。

3 Spout2简单的使用

SPOUTSDK\SpoutLibrary\SpoutLibrary.pdf文件中简单介绍了如何使用SpoutLibrary这个库。

首先需要在项目中包含头文件

#include "SpoutLibrary.h"

然后创建一个库的实例

SPOUTLIBRARY* pSpout = GetSpout();

然后再使用这个实例创建sender或者receiver,这里以创建sender为例,

pSpout->CreateSender(senderName, g_Width, g_Height);

然后就可以使用创建的sender发送视频帧了,比如

pSpout->SendTexture(senderTexture, GL_TEXTURE_2D, g_Width, g_Height);

最后在程序退出之前释放指针

if(pSpout)
{
    pSpout->ReleaseSender();
    pSpout->Release();
}

更加详细的使用方法可参考官方文档:https://spoutlibrary-site.netlify.app/#File:SpoutLibrary.cpp

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:Windows编译Spout2以及配置Spout2开发环境

原文链接:https://www.stubbornhuang.com/2662/

发布于:2023年06月20日 9:56:04

修改于:2023年06月20日 9:56:04

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
OpenCV | OpenGL - OpenCV的cv::mat转换为OpenGL的GL_TEXTURE_2D纹理数据
C++
下一篇
OBS与Spout插件安装与测试教程
工具软件网站
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

关注我们的公众号

微信公众号