在之前的博文中介绍了如何配置Spout2的开发环境,在本文中我将简单介绍一下如何使用Spout2发送视频流到OBS中进行推流。
1 使用Spout2 SDK将视频流发送到OBS
其实Spout2已经将API封装的非常简单易用了,通过参考官方的示例,我自己写了以下的代码将视频流推流到本机OBS中,示例代码如下
#include <iostream>
#include "SpoutLibrary.h"
#include "opencv2/opencv.hpp"
int main()
{
std::string image_path = "../../resource/final.png";
cv::Mat image = cv::imread(image_path, CV_8UC4);
cv::Mat image_copy;
cv::cvtColor(image, image_copy, cv::COLOR_BGRA2RGBA);
int image_height = image.rows;
int image_width = image.cols;
SPOUTLIBRARY* ptr_spout = GetSpout();
ptr_spout->EnableSpoutLog();
ptr_spout->SetSpoutLogLevel(SpoutLibLogLevel::SPOUT_LOG_VERBOSE);
ptr_spout->SpoutLog("Spout version : %s", ptr_spout->GetSDKversion().c_str());
//sender->SetSenderName("spout_test");
bool res = ptr_spout->CreateSender("spout_test", image_width, image_height);
for(int i = 0; i < 100000; ++i)
{
ptr_spout->SendImage(image_copy.data, image_width, image_height, GL_RGBA);
ptr_spout->HoldFps(30);
}
if (ptr_spout != nullptr)
{
ptr_spout->ReleaseSender();
ptr_spout->Release();
}
return 0;
}
上述代码依赖OpenCV和Spout2。
首先通过OpenCV读取一张带有透明通道的图片,然后获取图片的宽高信息。之后创建一个Spout Sender对象,通过SendImage
发送图片到本机OBS,循环发送100000遍模拟视频流,最后释放内存。当然你也可以使用OpenCV读取一个视频,将每一帧视频帧发送到OBS中。
下图是没有使用Spout2推流到OBS的画面
下图是使用Spout2发送透明图片到OBS的画面
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 使用Spout2将视频流发送到OBS
原文链接:https://www.stubbornhuang.com/2682/
发布于:2023年06月25日 13:56:27
修改于:2023年06月25日 13:56:27
当前分类随机文章推荐
- C++ - 使用宏区分不同系统平台、不同编译器、不同编译模式等编译期宏使用总结 阅读1803次,点赞0次
- C++ - sleep睡眠函数总结 阅读1894次,点赞0次
- C++STL容器 – std::vector容器修改、元素操作总结 push_back,emplace_back,emplace,insert,erase,pop_back,clear,resize,swap 阅读1305次,点赞1次
- C++11/std::thread - 线程管理join/detach 阅读2643次,点赞0次
- C++STL容器 - std::map查找元素与判断键值是否存在方法总结 count,find,contains,equal_range,lower_bound,upper_bound 阅读1260次,点赞0次
- C++ - 使用正则判断字符串是否全是中文 阅读1674次,点赞0次
- C++ - int转string方法总结 阅读6982次,点赞0次
- OpenCV - OpenCV打开摄像头显示摄像头帧率 阅读319次,点赞0次
- C++ - Windows系统获取桌面路径 阅读461次,点赞0次
- C++ - 最简单的将文本文件的内容一次性读取到std::string的方法 阅读5663次,点赞4次
全站随机文章推荐
- 资源分享 - Computer Graphics Through OpenGL - From Theory to Experiments (Third Edition) 英文高清原版 PDF下载 阅读3920次,点赞0次
- 资源分享 - Visualizing Quaternions 英文高清PDF下载 阅读2149次,点赞0次
- Duilib - pos和padding属性设置的顺序 阅读3198次,点赞0次
- 资源分享 - The NURBS Book (2nd,Les Pieg) 英文版PDF下载 阅读6826次,点赞3次
- 资源分享 - 《Linux命令行大全》.((美)William E.shotts,Jr)中文pdf下载 阅读4397次,点赞2次
- Chrome浏览器启动很慢的原因,不要开硬件加速模式! 阅读506次,点赞0次
- C++ - 使用标准库实现事件和委托,信号和槽机制 阅读607次,点赞0次
- WordPress - 支持用户注册时使用中文名 阅读2249次,点赞0次
- 资源分享 - 计算机图形学几何工具算法详解 Geometric Tools for Computer Graphics中文译文版 周长发译 PDF下载 阅读3039次,点赞0次
- Youtube运营 - 申请开通YPP(Youtube合作伙伴计划)时,人工审核未通过,理由为再利用他人的内容 阅读681次,点赞0次
评论
169