如题。
这种轮子靠我自己暂时是造不出来了,那现在有哪些可供选择的开源方案呢?
美颜等加工流程可以通过 opencv 实现。
主要是虚拟摄像头,找到功能上符合要求的,
1.obs 虚拟摄像头(只能下载 obs 软件,不能嵌入到自己的 cs 程序)
2.v4l2loopback https://github.com/videolan/vlc (只有 linux 环境,但客户端软件一般运行在 windows 及 macos )
1
wkmike 2022-08-17 10:32:09 +08:00
之前做过类似项目,可以参考一下 obs-virtual-cam
|
2
ysc3839 2022-08-17 10:49:46 +08:00 via Android
OBS 的虚拟摄像头模块是以 GPL 协议开源的。
或者也可以使用 NDI Tools 的虚拟摄像头,但是能否商用就不好说了。 |
3
andyskaura OP @wkmike 这个能单独使用吗 还没找到单独使用的方式,看 readme 描述,运行时依赖 obs-studio
|
4
andyskaura OP |
5
wkmike 2022-08-17 11:20:57 +08:00
@andyskaura #3 可以单独使用,就注册 DirectShow 设备、开始(分辨率、帧率)、ARGB RAW 数据写入这几个逻辑,读一遍源码就明白了
|
6
wkmike 2022-08-17 11:24:23 +08:00
@wkmike #5 不过 DirectShow 摄像头,之前做的时候 QQ 、Skype 客户端设备识别和画面都正常,Chrome 浏览器无法调用,自己实现虚拟 USB 设备的话好像需要 EV 证书签名就没折腾了
|
7
ysc3839 2022-08-17 11:31:11 +08:00 via Android
@wkmike Chrome 无法调用是连 OBS 的也不行吗?如果 OBS 可以,你自己写的不行,那可能是 Chrome 拒绝加载未签名的 DLL 。
|
8
andyskaura OP @wkmike 非常感谢 对我及其有帮助
|
9
andyskaura OP @ysc3839 我去测试一下 是用在 webrtc 通讯上的 稍后在这里更新结果
|
10
ysc3839 2022-08-17 11:49:34 +08:00
WebRTC 的话完全可以直接用客户端去推流,建议说一下完整的情况。
|
11
andyskaura OP @ysc3839
-------------------接 9 楼回复------------ obs 虚拟摄像头在 chrome 下为 webrtc 读取是正常的。 ------------------10 楼------------- 整体业务需求描述很简单,就是浏览器端远程通话及 rtsp 监控摄像头,并能添加美颜或绿布等特效。 现在能确定的是,必须通过 webrtc 传输(里面有成熟的降噪,通讯,以及跨平台等优势)。 为什么不直接用客户端推流?因为希望主体仍然是浏览器,在脱离客户端的情况下也能满足最低需求。当然,实在不行就全依赖客户端,或者 chrome 拓展(还没调研,不太确定)。 其实现在方向也很混乱,目前规划的是还需要做手机端(感觉还有不少路要走),如果浏览器能全搞定就好了。😭 |
12
wkmike 2022-08-17 14:33:26 +08:00
@andyskaura #11 你的需求是远程采集-美颜 /绿布-P2P 多人会话?
客户端可以试试 Electron+ Native Node Modules 来实现,UI 、和会话业务使用 Web 开发,视频采集、美颜、虚拟摄像头推流等功能用 C/C++封转后通过 JS Worker 调用。 |
13
ysc3839 2022-08-17 15:24:47 +08:00
@andyskaura 还要支持手机的话那肯定得用客户端了,可以做成没有客户端的情况下就没有美颜功能。
|
14
andyskaura OP @ysc3839 现在有了新问题,跨全平台,用 flutter 还是 qt ,老板还强烈建议我用 delphi
|