最近我想在和朋友一起玩游戏时使用 OBS Studio 录制游戏画面,但那位朋友不希望他的声音出现在录音中。
问题是,OBS Studio 无法录制来自程序的音频,而是来自设备(例如,输出到扬声器的声音)。
在 Google 上快速搜索后,我测试了两个程序:虚拟音频线(我们法国人称之为“天然气使用“[“气体工厂”,一个非常令人困惑且难以使用的程序]),以及 JACK 音频连接套件。
作为免费软件的粉丝,我最终保留了 JACK。
虽然我在网上找到了一些教程(这个是我见过的最好的),我总是停留在同一个点:JackRouter 音频“设备”的选择。
我也尝试使用 QjackCtl 的连接功能,但显然 OBS 和游戏都没有出现在那里。
我是不是遗漏了什么?我应该怎么做才能让 JACK 和 OBS 协同工作?
技术细节:我从官方网站,我在 Windows 10 64 位上运行它。
我在这里提问是因为我在网上没有找到答案。
答案1
杰克可以使用 ASIO 驱动程序,你可以将一些部件组合在一起来实现这一点 - 事实上,这是我在日常使用的流媒体/游戏设备上运行的设置。
- Jackd 提供音频“中心”。
- 特区是一个 ASIO 驱动程序,允许创建虚拟 Windows 播放/录制设备并将音频传送到客户端,因此播放到 SAR 播放设备的音频可作为插孔中的音频源;发送到相应插孔音频接收器的音频将可用于从虚拟录制设备在 Windows 端录制。SAR 还可以链接到另一个 ASIO 设备,以允许使用类似... 之类的方式访问您的音频硬件
- 韋錫,这是一个提供对您的硬件进行访问的 ASIO 驱动程序。
- 最后,你需要一个可以识别插孔的 DAW,例如热情,您可以在此处执行 DSP。
这些东西都是免费软件(ASIO4ALL)或开源软件(其他一切)。
下面是我的 Ardour 设置的图片,可以让您了解其可能性:
请注意,所有的配置可能都非常棘手,所以您可能需要进行多次尝试才能使其正常工作。
细心的读者会注意到,这是 Ardour 在 Linux 而非 Windows 上运行的屏幕截图。就我而言,我将 DSP 卸载到 Linux 机器上;jack 具有网络功能,因此您可以链接两个 jackd 实例并让它们共享音频。这样,来自 Windows 系统的音频就会通过网络发送到我的 Linux 系统,在那里由 Ardour 混合,然后发送回 Windows,再发送到录制音频的硬件和/或程序(OBS、Discord 等)。这一切都发生在约 5-8 毫秒的延迟内,这是不可察觉的。
我也在 Windows 上直接运行过 Ardour,所以我知道它也同样有效。
答案2
我认为目前不可能。Jack 通过 portaudio 进行通信,而 OBS 中没有实现该功能。如果 OBS 兼容 ASIO,只要 Jack 为 ASIO 设置,它就可以正常工作。将 ASIO 移植到 OBS 的唯一方法是通过虚拟电缆。 https://www.youtube.com/watch?v=QF0-KzUHZ8Q