设置延迟后,在单独的播放设备上重复音频


1

首先,让我解释一下这个场景:我想在游戏CS:GO中将PC连接到观众服务器,同时在同一台机器上加入游戏中玩家的语音通信服务器(不和谐),然后流式传输屏幕使用OBS。

问题在于:观众服务器正在设定延迟 - 让我们说120秒(以避免显然作弊),这意味着,简单地将来自Discord的声音与连接到服务器的屏幕产生的图像一起流式传输,会导致音频比图像提前120秒。

我正在寻找一种方法来选择,可能是一个虚拟声卡作为来自Discord的音频的输出设备。然后将音频延迟120秒,然后将其输出到正在OBS上流式传输的设备上。

因此,得到的流将具有游戏的观众视图,以及(有些)正确地同步的玩家音频游戏。

这可能吗?到目前为止,我还没有找到关于这个主题的任何内容。

Answers:


2

我最终使用以下解决方案:

事实证明,流行的媒体播放器VLC具有内置的功能。我在这里找到了答案:https//softwarerecs.stackexchange.com/questions/35552/record-a-sound-and-play-it-back-after-a-user-defined-delay

在声音方面我处理它的方式是使用VoiceMeeter虚拟声音设备作为Discord的输出,并选择Voicemeeter作为VLC中选定的输入设备。VLC在默认声音设备上播放“回声”声音(与游戏客户端使用的声音设备相同),从而匹配图像和音频。


1

OBS自己的界面允许您在主屏幕右侧的“混音器”配置轮下的“高级音频属性”下为您的音频接口添加最多20秒的延迟

但是,既然你提到了120秒,那还不够。您尝试使用Equalizer APO添加更多延迟。

来自Wiki Docs

延迟(自0.9版本起)
(...)

说明:将所选通道上的音频延迟t毫秒或n个样本。毫秒应该是首选,因为它们将提供与采样率无关的相等延迟。

在理论上应该这样做。(但它可能会限制它可以添加的延迟量,就像OBS一样。)

但请注意,添加声音延迟还意味着在播放前将所有延迟秒存储在RAM内存中,因此根据延迟量以及软件使用的音频格式/编解码器,这可能意味着大量内存。

我想这可能是OBS限制的一个原因,尽管我认为应由用户自行决定。

至于输入和输出之间的虚拟声卡接口,您可以使用免费版本的虚拟音频线

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.