用yangwebrtc搭建虚拟背景和美颜webrtc直播系统

概述

      虚拟背景依托于人像分割技术,通过将图片中的人像分割出来,对背景图片进行替换实现。并且可以对人像进行美颜等处理。本次demo是基于opencv处理,可替换成深度学习实现的。

下载源码和运行类库

https://github.com/metartc/yangwebrtc/releases/tag/2.0.058https://github.com/metartc/yangwebrtc/releases/tag/2.0.058

https://gitee.com/metartc/yangwebrtc/releases/2.0.058https://gitee.com/metartc/yangwebrtc/releases/2.0.058

 metartc2_with_3rdparty.058.7z为源码压缩文件,metartc2.win_runtime.7z为应用程序依赖的dll文件

编译视频参考metartc(yangwebrtc)windows版本编译教程_哔哩哔哩_bilibilimetartc(yangwebrtc)编译教程https://www.bilibili.com/video/BV1d3411r742/编译参考文章

用yangwebrtc搭建兼容webrtc协议和支持嵌入式智能终端的多人视频会议_m0_56595685的博客-CSDN博客下载源码和运行类库下载地址:https://github.com/metartc/yangwebrtc/releases/tag/2.0.040https://gitee.com/yangrtc/yangwebrtc/releases/2.0.040yangmeeting2.040.7z为源码压缩文件,yangrtc2_win_runtime.7z为应用程序依赖的dll文件服务器部署使用Qt或者用其他ide编译YangMeetingServer建立my...https://blog.csdn.net/m0_56595685/article/details/121304109

VR直播搭建

修改配置参数

修改配置文件include目录下Yang_Config.h文件

将#define Yang_HaveVr 0 修改为 #define Yang_HaveVr 1

 
 

 配置文件yang_config.ini的[sys]下bgFileName为背景替换图片,目前只支持jpeg图片。

 

编译工程

 ext目录为虚拟背景实现代码,需编译里面的工程libyangrtcext2,用qt打开即可编译

 
 

 编译后的工程在bin/lib_win_debug目录下

 美颜或者其他特效

 在YangPushCapture.cpp里的startLoop函数里可以替换成其他特效

 m_out_vr_pre_videoBuffer->getVideo(&videoFrame);//取出摄像头视频帧

yuv.I420torgb24(srcData, matSrcRgb, inWidth, inHeight);//将其转为rgb
mat->matImage(matSrcBgr, matDst);//抠图并替换背景,可替换为自己的特效,将其数据放入matDst数组里即可。

运行程序

编译好yangpushstream2后点击debug打开

  选中VR复选框后,点击推流即可。

注意事项

基于opencv实现抠图,支持绿幕和蓝幕,有时需要灯光和参数调整。

抠图代码

YangMatImageCv.cpp里
yang_cvCvtColor(m_frame, m_hsv, 40);
yang_cvInRangeS(m_hsv, cvScalar(35, 43, 46), cvScalar(77, 255, 255),m_mask);

参数 cvScalar(35, 43, 46), cvScalar(77, 255, 255) 是在这个颜色区间过滤,光线亮度不同会影响抠图的效果,需调整这个hsv颜色区间的数值。

 webrtc服务器

推荐Srs4.0,下载编译参考http://github.com/ossrs/srs#usage

​      objs/srs -c conf/https.rtc.conf

可支持webrtc/rtmp/hls/srt/httpflv等直播。

猜你喜欢

转载自blog.csdn.net/m0_56595685/article/details/121574189