有这么一个需求:获取原生摄像头数据美颜等加工后推流给虚拟摄像头 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andyskaura
4.63D
V2EX    问与答

有这么一个需求:获取原生摄像头数据美颜等加工后推流给虚拟摄像头

  •  
  •   andyskaura 2022-08-17 10:22:24 +08:00 2597 次点击
    这是一个创建于 1153 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题。
    这种轮子靠我自己暂时是造不出来了,那现在有哪些可供选择的开源方案呢?
    美颜等加工流程可以通过 opencv 实现。
    主要是虚拟摄像头,找到功能上符合要求的,
    1.obs 虚拟摄像头(只能下载 obs 软件,不能嵌入到自己的 cs 程序)
    2.v4l2loopback https://github.com/videolan/vlc (只有 linux 环境,但客户端软件一般运行在 windows 及 macos )

    14 条回复    2022-08-18 11:47:35 +08:00
    wkmike
        1
    wkmike  
       2022-08-17 10:32:09 +08:00
    之前做过类似项目,可以参考一下 obs-virtual-cam
    ysc3839
        2
    ysc3839  
       2022-08-17 10:49:46 +08:00 via Android
    OBS 的虚拟摄像头模块是以 GPL 协议开源的。
    或者也可以使用 NDI Tools 的虚拟摄像头,但是能否商用就不好说了。
    andyskaura
        3
    andyskaura  
    OP
       2022-08-17 10:59:56 +08:00
    @wkmike 这个能单独使用吗 还没找到单独使用的方式,看 readme 描述,运行时依赖 obs-studio
    andyskaura
        4
    andyskaura  
    OP
       2022-08-17 11:01:30 +08:00
    @andyskaura
    @ysc3839
    虚拟摄像头模块看了下都是作为 obs-studio 插件使用的,能否独立使用呢?
    wkmike
        5
    wkmike  
       2022-08-17 11:20:57 +08:00
    @andyskaura #3 可以单独使用,就注册 DirectShow 设备、开始(分辨率、帧率)、ARGB RAW 数据写入这几个逻辑,读一遍源码就明白了
    wkmike
        6
    wkmike  
       2022-08-17 11:24:23 +08:00
    @wkmike #5 不过 DirectShow 摄像头,之前做的时候 QQ 、Skype 客户端设备识别和画面都正常,Chrome 浏览器无法调用,自己实现虚拟 USB 设备的话好像需要 EV 证书签名就没折腾了
    ysc3839
        7
    ysc3839  
       2022-08-17 11:31:11 +08:00 via Android
    @wkmike Chrome 无法调用是连 OBS 的也不行吗?如果 OBS 可以,你自己写的不行,那可能是 Chrome 拒绝加载未签名的 DLL 。
    andyskaura
        8
    andyskaura  
    OP
       2022-08-17 11:32:43 +08:00
    @wkmike 非常感谢 对我及其有帮助
    andyskaura
        9
    andyskaura  
    OP
       2022-08-17 11:37:47 +08:00
    @ysc3839 我去测试一下 是用在 webrtc 通讯上的 稍后在这里更新结果
    ysc3839
        10
    ysc3839  
       2022-08-17 11:49:34 +08:00
    WebRTC 的话完全可以直接用客户端去推流,建议说一下完整的情况。
    andyskaura
        11
    andyskaura  
    OP
       2022-08-17 13:46:00 +08:00
    @ysc3839
    -------------------接 9 楼回复------------
    obs 虚拟摄像头在 chrome 下为 webrtc 读取是正常的。
    ------------------10 楼-------------
    整体业务需求描述很简单,就是浏览器端远程通话及 rtsp 监控摄像头,并能添加美颜或绿布等特效。
    现在能确定的是,必须通过 webrtc 传输(里面有成熟的降噪,通讯,以及跨平台等优势)。
    为什么不直接用客户端推流?因为希望主体仍然是浏览器,在脱离客户端的情况下也能满足最低需求。当然,实在不行就全依赖客户端,或者 chrome 拓展(还没调研,不太确定)。
    其实现在方向也很混乱,目前规划的是还需要做手机端(感觉还有不少路要走),如果浏览器能全搞定就好了。
    wkmike
        12
    wkmike  
       2022-08-17 14:33:26 +08:00
    @andyskaura #11 你的需求是远程采集-美颜 /绿布-P2P 多人会话?
    客户端可以试试 Electron+ Native Node Modules 来实现,UI 、和会话业务使用 Web 开发,视频采集、美颜、虚拟摄像头推流等功能用 C/C++封转后通过 JS Worker 调用。
    ysc3839
        13
    ysc3839  
       2022-08-17 15:24:47 +08:00
    @andyskaura 还要支持手机的话那肯定得用客户端了,可以做成没有客户端的情况下就没有美颜功能。
    andyskaura
        14
    andyskaura  
    OP
       2022-08-18 11:47:35 +08:00
    @ysc3839 现在有了新问题,跨全平台,用 flutter 还是 qt ,老板还强烈建议我用 delphi
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:37 PVG 07:37 LAX 16:37 JFK 19:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86