1

First, let me explain the scenario: I am looking to connect a PC to a spectator server in the game CS:GO, while joining a voice communication server (discord) of the players in the game on the same machine, and then stream the screen using OBS.

Here's the problem: The spectator server is running on a set delay - let's just say 120 seconds (to avoid cheating obviously), which means, that simply streaming the sound coming from Discord along with the image produced from the screen being connected to the server, would result in the audio being 120 seconds ahead of the images.

I am looking for a way, to select, possibly a virtual soundcard as the output device for the audio coming from Discord. Then delay the audio 120 seconds, and then output it on the device being streamed on OBS.

Thus the resulting stream will have a spectators view of the game, together with the player audio ingame synced up (somewhat) correctly.

Is this possible? So far I haven't been able to find anything on the topic.

2 Answers 2

2

I ended up using the following solution:

It turns out that the popular media player VLC has a built in functionality for this. I found the answer here: https://softwarerecs.stackexchange.com/questions/35552/record-a-sound-and-play-it-back-after-a-user-defined-delay

The way I handle it when it comes to sound, is using VoiceMeeter virtual sound device as the output for Discord, and selecting Voicemeeter as the selected input device in VLC. The "echo" sound is played back by VLC on the default sound device (the same as the one the game client is using) thus matching up image and audio.

1

OBS's own interface allows you to add up to 20 seconds of delay to your audio interface, under "Advanced Audio Properties", found under the config wheel of "Mixer", right at the main screen.

However, since you've mentioned 120 seconds, that wouldn't be enough. You try to use Equalizer APO to add more delay.

From the Wiki Docs:

Delay (since version 0.9)
(...)

Description: Delays the audio on the selected channels by t milliseconds or n samples. Milliseconds should be preferred because they will give equal delay independent of the sample rate.

In theory that should do it. (But it could be limited in the amount of delay it can add, just like OBS is.)

Note however that adding a sound delay also means storing all the delayed seconds in RAM memory before they are played, so depending on the delay amount and on the audio format/codec which the software uses, that could mean a lot of memory.

I guess that could be one reason for the OBS limitation, although I believe it should be left at the user's discretion.

And as for the virtual soundcard interface between input and output, you can use the free version of Virtual Audio Cable.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .