我尝试在 Discord 上向我的好友直播一款 VR 游戏,但当有人在 Discord 上直播(屏幕共享)游戏或任何应用程序时,Discord 只会捕获来自窗口的音频。当我玩 BeatSaber 等游戏时,如果动作很多,他们可以通过麦克风听到我的呼吸声,这会打扰频道中的其他用户。
我目前正在使用 OBS 来捕获 OpenVR 输入(来自 SteamVR),并且我还在屏幕左上角放置了来自 VR 耳机上摄像头的网络摄像头流,然后我使用 OBS Windows 投影功能来显示 OBS 视图而无需实际直播或录制任何内容,这节省了大量系统资源。
我想要找到一种方法,将来自 VR 耳机的音频流和 OBS 投影合并到一个有声音的桌面窗口中,并让该窗口能够像其他游戏一样在 Discord 中共享屏幕。这样,如果有人想看我玩 Beat Saber 并在玩的时候大口喘气,那么他们就可以观看屏幕共享,而不必在 Discord 上调低我的音量。
我对 VoiceMeeter 非常熟悉,如果需要的话我可以使用吗?将视频和音频结合起来唯一可能令人担心的是我可能会在玩游戏时听到自己说话的声音,但我可以通过在 Windows 10 音频设置中将窗口静音来解决这个问题,希望之后 Discord 仍然能够拾取音频。
如果有人有任何建议,我将不胜感激。
答案1
我解决了!我四处寻找类似的东西,发现 VLC 媒体播放器可以使用音频设备打开捕获设备,并且延迟很低。我所做的是:
- 安装并设置 OBS
- 安装 OBS VirtualCam 插件。最新版本 OBS(撰写本文时为 26.1.1)内置的虚拟摄像头在使用 VLC 时出现了一些问题,因此安装 OBS 的独立插件对我来说没问题。
- 为了获得 Discord 流媒体的最低延迟,请打开 OBS,然后转到 --> 工具 --> VirtualCam --> 缓冲帧 --> 向下拖动到 0。
- 如果您想使用 OBS 执行此操作,还请启用 OBS VirtualCam 自动启动。
- 按-->开始
- 安装并打开 VLC
- 转到 --> 工具 --> 首选项 --> 输入/编解码器 --> (在)编解码器 --> 硬件加速解码 --> (从下拉菜单中选择) DirectX 视频加速 (DXVA) 2.0
- 返回“首选项”,然后在顶部选择 --> 视频 -->(下方)显示 --> 输出 -->(从下拉菜单中选择)
DirectX(DirectDraw)视频输出请参阅下面的我的编辑 - 然后,在视频选项卡中,向下滚动到 --> DirectX -->(并禁用)加速视频输出(覆盖),并禁用 --> 使用硬件 YUV -> RGB 转换。这些设置导致我的屏幕变粉,但 YMMV 可能有所不同。
- 关闭偏好设置。
- 在 VLC 中,转到媒体 --> 打开捕获设备 --> DirectShow --> 视频设备名称 --> (从下拉菜单中选择)OBS-Camera。
- 仍在菜单中,在“音频设备名称”下,选择 --> OBS-Audio。
- 点击菜单底部的“显示更多选项”。
- 将“缓存”设置为 50ms
- 如果您愿意,可以进入菜单中间的“高级选项”选项卡来调整其他设置,例如帧速率、音频比特率等。
- 准备就绪后,按“在底部播放”
- 当视频和音频窗口出现时,可能会出现一些音频回环。要解决此问题,您可以
- A. 将 Windows 7/8/10 声音混音器中的窗口静音。
- B. 更改 VLC 中的输出设备,我就是这么做的。只要确保在不流式传输时在 VLC 中播放视频,即可将音频设备输出再次更改回耳机。要在 VLC 主屏幕中执行此操作,请选择 --> 音频 --> 音频设备 -->(并选择您未使用的备用音频设备,每个人的情况都不同,但在我的例子中,我将选择)Realtek 数字输出。
- 打开 Discord 并屏幕共享 VLC 窗口,它应该在 Discord 中显示为“dshow://”。
- 大功告成!现在,您的桌面/游戏已内置了 Discord 的游戏/麦克风音频!由于使用的是 OBS,您几乎可以将任何内容放在屏幕或声音上!
我希望这对某些人,或者任何将来遇到这个问题的人有帮助。
编辑1:将视频输出重新设置为自动似乎现在能给我带来更好的效果(窗口装饰在 Discord 中不可见,这是更理想的),所以我建议使用它。
编辑2 (重要的):我发现使用 VLC 时,视频会被压缩,而且对我来说很模糊。因此,我决定改为从 OBS 创建窗口投影,然后在 OBS 的高级音频设置中将音频源设置为 --> 音频监控 --> 监控和输出。我这样做是为了让 Discord 可以从 OBS 拾取音频,同时仍从窗口投影中获取视频。现在的问题是,您现在有反馈循环,这不是您想要的。因此,为了解决这个问题(您需要运行 Windows 10),我们需要将音频从 OBS 应用程序从 Windows 设置路由到备用未使用的音频设备。幸运的是,我有 VirtualAudio 电缆,所以我可以将音频路由到 Cable-C-Input,但是如果您没有,那么您可以使用任何未使用的音频设备来防止反馈循环,例如上面提到的 Realtek Digital Ouput,但同样,YMMV。