如何把OBS画面变成虚拟摄像头:obs-virtual-cam完整教程
如何把OBS画面变成虚拟摄像头obs-virtual-cam完整教程【免费下载链接】obs-virtual-camobs-studio plugin to simulate a directshow webcam项目地址: https://gitcode.com/gh_mirrors/ob/obs-virtual-cam周一上午的跨部门评审你想给同事展示OBS里精心合成的画面——真实摄像头加上动态字幕、再叠一段产品演示视频。但会议软件只认物理摄像头你的OBS输出却不在摄像头列表里。obs-virtual-cam就是来解这个围的它是一个运行在 Windows 上的 OBS Studio 插件把 OBS 的实时输出画面和音频变成系统级的虚拟 DirectShow 摄像头与麦克风DirectShow 是 Windows 上枚举、读取音视频设备的标准接口Zoom、Teams、微信视频这些软件都是通过它找摄像头的任何视频软件都能把它当普通设备调用。下面按装好 → 跑通 → 进阶 → 自救的顺序带你从零走到能改源码练手。它凭什么能骗过会议软件一分钟看懂数据流插件由两半组成中间隔着一块共享内存OBS 侧的输出插件挂在 OBS 的输出体系里把每一帧视频、每段音频写进共享内存队列DirectShow 设备侧注册成系统里的OBS-Camera摄像头最多 4 路和OBS-Audio麦克风第三方软件从这块内存里读数据填进自己的媒体帧里。两边交换的信封格式定义在src/queue/share_queue.h每路设备对应一个映射名OBSVirtualVideo到OBSVirtualVideo4、OBSVirtualAudio信封里带时间戳、分辨率、格式等头部信息。提示因为格式走的是标准 WAVEFORMATEX / 视频媒体类型所以骗得通用——软件只认格式不认设备是不是物理的。环境要求先说清Windows 7 / 8 / 10OBS Studio 24.0.0 及以上。OBS 26.0.0 起官方内置了虚拟摄像头但插件多出4 路摄像头 虚拟麦克风 按源输出这几样需要的话它依然值得装。安装步骤拷贝文件与 regsvr32 注册两条命令从项目的 Release 发布页下载推荐直接跑安装器拿到压缩包的话手动装核心就三步。解压并放入 OBS 安装目录默认C:\Program Files\obs-studio\。做完后目录里应能看到obs-virtualsource.dll等插件文件且 bin 下分32bit和64bit两个子目录。以管理员身份打开 CMD注册 32 位环境的 DirectShow 过滤器regsvr32 C:\Program Files\obs-studio\bin\32bit\obs-virtualsource.dll再注册 64 位环境的regsvr32 C:\Program Files\obs-studio\bin\64bit\obs-virtualsource.dll两条命令各会弹一个DllRegisterServer 成功的确认框。✅ 两条都点完确定这一步才算真正完成。为什么要注册两次老一点的 32 位程序和新的 64 位程序会去注册表里不同位数的区找摄像头两边都写进去才不会出现某个软件死活看不见 OBS-Camera的情况。卸载也一样简单把/u加回去regsvr32 /u C:\Program Files\obs-studio\bin\64bit\obs-virtualsource.dll第一次实战让OBS场景出现在会议画面里目标会议里显示的不再是你的物理摄像头而是 OBS 里叠加了字幕、滤镜的合成场景。在 OBS 里搭好场景。把视频采集设备物理摄像头拖进场景叠一个文本GDI做字幕需要抠像就加色度键滤镜。注意这一步不需要点开始直播或录制OBS 只要在运行输出就能工作。做完后预览区应能同时看到摄像头和字幕。打开插件面板。OBS 菜单栏工具下现在多出一个虚拟摄像头点开它。面板上有五个选项选项作用建议缓冲帧在共享队列里多压几帧值越大画面越稳、延迟越高默认 3卡顿就调大嫌慢就调小到 1自动启动OBS 一打开就自动推流想开机即用就勾水平翻转镜像画面模拟真实前置摄像头观感按对方观感决定保持长宽比例防止目标软件尺寸不匹配时画面被拉伸建议常开目标摄像头输出到 4 路中的哪一路默认 OBS-Camera点启动。此时启动按钮变为不可用、停止高亮说明输出线程已在往共享队列写帧。去会议软件选 OBS-Camera。在 Zoom 的 设置 → 视频 → 摄像头 里选中它预览窗口立刻从物理摄像头切到 OBS 场景。 从这一刻起你在 OBS 里换字幕、加转场、开滤镜对方那边同步变化。提示面板显示无法启动输出时多半是共享内存已被上一个未正常退出的 OBS 进程占着——彻底退出 OBS 再重开一次即可。声音一起送出去配置 OBS-Audio 虚拟麦克风画面通了声音呢注册时插件已经把音频打包成一路标准虚拟麦克风44.1kHz 采样率、16 位、双声道 PCM——标准到任何 DirectShow 软件都照单全收格式参数定义在src/virtual-source/virtual-audio.h。确认虚拟摄像头面板处于启动状态音频是跟着同一次启动一起推的。在会议软件的麦克风选项里选OBS-Audio。在 OBS 里放段背景音乐试音会议里应能听到 OBS 的全部声音——音乐、音效、处理过的人声一起进来。进阶想让 OBS 里的降噪、压缩器、均衡器生效这些处理就挂在 OBS 的音频输出链上经过虚拟麦克风出去的声音天然带上了全部效果。进阶配置多路摄像头与单源滤镜模式两个玩法适合把这套东西用到极致的人。① 注册指定路数的虚拟摄像头最多 4 路每路一个独立共享内存队列可以给不同软件分不同场景。先反注册再用参数指定数量管理员 CMD 里执行regsvr32 /u C:\Program Files\obs-studio\bin\64bit\obs-virtualsource.dll regsvr32 /n /i:2 C:\Program Files\obs-studio\bin\64bit\obs-virtualsource.dll第二行把/i:的值改成 1~4 即可。做完后设备管理器或任何软件的摄像头列表里应出现 OBS-Camera、OBS-Camera2。注册逻辑在src/virtual-source/dllmain.cpp的DllInstall里参数就对应那里的路数分支。② 把虚拟摄像头当滤镜挂到任意源上。不想输出整个场景、只想把某一个源比如一路外部采集单独喂给虚拟摄像头右键那个源 → 滤镜 → 添加 → 选择虚拟摄像头在滤镜属性里设置缓冲帧、目标摄像头、翻转、长宽比后点启动。实现见src/virtual-output/virtual_filter.cpp它逐帧渲染目标源并推入共享队列场景里其他源互不干扰。故障排查五个最常见问题的速查表现象真正原因解决其他软件里找不到 OBS-Camera注册表里没有该过滤器或只注册了 64 位管理员权限重跑 32/64 位两条 regsvr32注册时报模块已加载但找不到入口点32 位系统上跑了 64 位 regsvr32或反了用与 DLL 位数匹配的 regsvr32 路径画面全黑虚拟摄像头启动了但 OBS 侧输出没启动回插件面板点启动确认面板处于运行中画面被拉伸变形目标软件与 OBS 分辨率比例不一致面板勾选保持长宽比例有画面没声音只选了摄像头没选麦克风软件音频设置里单独选 OBS-Audio两个高频疑问一并答掉和 OBS 26 内置的虚拟摄像头会冲突吗不会插件注册的是独立的 DirectShow 过滤器名字也不同不用了反注册即可互不影响。为什么某老软件怎么都识别不到十有八九是位数问题两条注册命令都跑一遍基本消失。延迟偏高就先看缓冲帧调到 1仍慢就检查 OBS 输出分辨率1080p60 的负载明显高于 720p30。动手练手源码入口与编译指南想读代码按数据流从三个目录走起就串起来了src/virtual-output/OBS 侧输出与面板、src/virtual-source/DirectShow 设备侧、src/queue/共享内存队列的读写实现。想自己编译工具链是CMake Visual Studio 2017 先构建好 OBS 工程及其依赖然后在 CMake 里配好这几个变量QTDIRQt 目录、DepsPathOBS 依赖包里的 FFmpeg 目录、LIBOBS_INCLUDE_DIR、LIBOBS_LIB、OBS_FRONTEND_LIB、PTHREAD_LIB。源码可从 https://gitcode.com/gh_mirrors/ob/obs-virtual-cam 克隆。第一次练手建议改个小参数src/virtual-output/virtual_properties.cpp里有一行config_set_default_int(config, VirtualOutput, OutDelay, 3)那个 3 就是缓冲帧的出厂默认值改成 5 重新编译面板默认值就变了——改动、编译、验证一条完整的插件开发回路就走完了。顺手横向对比一下Linux 用户有 obs-v4l2sink走 V4L2 接口Mac 用户有 obs-mac-virtualcam思路与本项目同源只是设备接口不同。看完文章不如亲手装一遍——现在就去 OBS 的工具菜单打开虚拟摄像头面板给你的下一次会议来点不一样的画面。【免费下载链接】obs-virtual-camobs-studio plugin to simulate a directshow webcam项目地址: https://gitcode.com/gh_mirrors/ob/obs-virtual-cam创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考