Question / Help OBS as an audio input? (VirtualCam but for Audio)

richardkean

New Member
So this helped me with getting VLC visualization into OBS its clunky but it works and there is a delay but i hope to get that fixed with a few tweeks.

I installed Virtual Audio Cable, i made sure the sound device and recorder are enabled in sound control panel

in OBS I set the monitoring to virtual audio cable, i set the audios i want sent to the other app to "monitor only"

in VLC i open a capture device, set the audio to virtual audio cable, then i turn on visualization and it works, i get live visualization from whatever audio is playing from obs

then in obs i capture the VLC window and stream that, i have to keep the VLC window open but it works, also fix the audio video sync but it works.
 

Way Don

New Member
Inside OBS, inside Advanced Audio Setting, set desktop speaker to "Monitor and Output".
Monitor = you can hear it via desktop speaker, in this case it routed to VB Audio.
Output = include the audio to streaming.
 

LeBlackHawaiian

New Member
Hi there, I'm doing webminars using zoom, is there a way to isolate the zoom audio to a specific audio capture device So I can integrate music and other media to our program without broadcasting the zoom conversation?
 

Mark Needham

New Member
I think I have figured this out... I made an account just to post a reply to maybe help others. I am using OBS and the virtualcam plugin to bring video into Microsoft teams. I wanted to use the OBS audio output as a input for microsoft teams so that I could take advantage of filters that I have on the mic in OBS rather than running the Mic directly into Teams. Here is what worked for me.

Step 1: In OBS in the Audio Mixer panel at the bottom, click the settings icon next to your microphone, go to Advanced Audio Properties, and turn on Monitoring for your microphone. I have it set to "Monitor and Output" because I like to use the record function of OBS to test things, if you select "Monitor Only" the mic will not work with the record or stream functions of OBS but can still be used in other applications.

Step 2: Find and download a Virtual Audio Cable program (google). I'm using the VB-Audio Virtual Audio Device. Follow the instructions to install, in the cast of VB-Audio application I downloaded, unzipped, and ran the .exe setup file.

Step 3: In OBS at the top of the screen, go to File -> Settings -> Audio (tab). Under the Advanced panel look for "Monitoring Device". Set this to the input for the virtual cable application "Cable Input (VB-Audio Virtual Cable)" in my case. If you do not see this you may need to close and reopen OBS, restart your computer, or double check your install of the Virtual Audio Cable application.

Step 4: Open the application that you want to use with OBS audio. In my case Microsoft teams. Change the microphone input device to the output of your virtual audio cable application, in my case ""Cable Output (VB-Audio Virtual Cable)". Again if this doesn't appear, try restarting the application or your PC.

Step 5: That's it, it worked for me, I hope it works for others too.
I've created an account just to say thanks. I spent hours battling with this situation on MS Teams (although I am sure the issue is similar on other platforms), before I stumbled across this post. At 0100 the day before an event finding your post and implementing the clear instructions to save us was brilliant. This product set (OBS) is not my background but the very little I've used so far seems the show that the product and forum represent each other, both great. Back on Teams for a moment and anyone else reading this.

Whilst other solutions likely exist this worked for us running a Teams "public" live event. For those in the know, whilst OBS / RTMP feed to Stream is likely best you can't do a public event with that. There are also additional considerations for actual live callers in the event (think Skype and NDI). We fed the OBS computer feed in as a normal presenter alongside other actual live presenters.
 

drewbsn

New Member
Just to make sure I understand this - we are essentially capturing monitor audio and sending that to the other application? Is there any loss of quality for this?

In my case it probably adds a small delay to the audio, but this syncs up with the delay added by the NDI plugin I'm using to move the video over. Why is the video so much more direct and clear? Audio plugin like the NDI video to do this more directly than capturing what we are monitoring?
 
I have a follow-up question along the lines of sending audio from OBS to another application, but while retaining the ability to monitor certain OBS sources through another 'aux send'.

We are currently running our livestream in OBS Studio but recently started using StreamYard in order to bring in guests and highlight comments.

We currently have OBS Virtual Cam sending the video and Virtual Audio Cable sending the audio into StreamYard. In order for this to work, as has been mentioned in this thread, OBS Studio must have the monitoring device set to Virtual Audio Cable.

The result is that we cannot hear any of the audio associated with any media sources playing within OBS Studio. For example, if we play a video clip, the audio from that clip is sent via Virtual Audio Cable to the stream and to our guests in StreamYard, but since we're routing monitoring to Virtual Audio Cable, we cannot hear it through our in-ear monitors.

We are looking for a way to set up an Aux send within OBS where certain audio sources are sent to StreamYard via Virtual Audio Cable but also are sent via USB Audio out to our mixer so that we can hear them too.

Does this make sense?

Thanks for any and all input!!
 
You should try using Voicemeeter Banana
Yes, we've tried using Voicemeeter Banana but it is unable to do what we're trying to do.

Here is our setup:
  • Behringer Xenyx X2442 USB Mixer going into PC via USB
  • In OBS Studio:
    • Mixer added as Audio Source in scene and is set to 'Monitor and Output'
    • Video added as Media Source in same scene and is set to 'Monitor and Output'
    • Monitoring device set to Voicemeeter VAIO
    • OBS Virtual Cam enabled
  • In StreamYard
    • Cam source set to OBS Virtual Cam
    • Mic source set to Voicemeeter VAIO
  • Our guests and viewers can hear all sources set to 'Monitor only' or 'Monitor and Output'
  • We hear ourselves directly through our mixer
  • We hear our guests' audio in StreamYard via Voicemeeter out to our USB Mixer
Here we have only 2 choices, neither of which are ideal:
  1. We also send input sent to Voicemeeter VAIO back out to our USB Mixer in Voicemeeter and hear all sources set to 'Monitor and Output' or 'Monitor Only' in OBS Studio and hear a delayed echo of our own voices and musical performances (not conducive to live musical performance)
  2. We don't hear any audio from media sources in OBS Studio at all but don't hear ourselves echoing (not ideal but the better of the 2, and is what we're currently stuck with)
What we need is some software solution (and I'm guessing this would have to happen within OBS Studio) that provides a second audio monitor channel (similar to a second Aux send) where we can simply select all sources except the USB Mixer audio source for monitoring and send that back to ourselves via the second virtual input channel in Voicemeeter.

What would absolutely work for this scenario would be the ability to capture the audio that would otherwise be going to the 'output' of OBS Studio. Since we're not streaming from OBS, that output isn't going anywhere...and that's a shame. If we just set our USB Mixer to 'Monitor' only' and then send OBS Studio's 'monitor' audio to StreamYard and 'output' audio back to us, we'd be all set!

So if OBS Studio had a 'Virtual Output' plugin similar to the 'Virtual Cam' plugin, that'd be great!!
 

Zeros.81

Member
How about adding the USB Mixer as Hardware Input on Voicemeeter and not in OBS ?
This way you can enable it for "B1 Virtual Ouptut" but disable for "B2 Virtual Output". And you can also enable your USB Mixer Input to your desired Hardware Output (A1, A2 or A3)
 
How about adding the USB Mixer as Hardware Input on Voicemeeter and not in OBS ?
This way you can enable it for "B1 Virtual Ouptut" but disable for "B2 Virtual Output". And you can also enable your USB Mixer Input to your desired Hardware Output (A1, A2 or A3)
I think I am following where you are going with this, but since we have to send audio to OBS from our mixer and since ALL audio coming out from OBS goes out through only 1 pipe currently (monitor out), we will always hear our own voices echoing along with any audio being generated from within OBS in any attempt to monitor. We can't pick and choose which sources to monitor coming out of OBS unless another output channel is made available.

Again, this ONLY applies to situations where we are not streaming directly from OBS, but rather sending video via OBS Virtual Cam and audio via monitor out to another streaming platform, such as StreamYard. When streaming from within OBS only, monitoring works as intended :)

Unless I'm completely misunderstanding your solution, in which case I may need some hand holding :D
 

Zeros.81

Member
I think I am following where you are going with this, but since we have to send audio to OBS from our mixer and since ALL audio coming out from OBS goes out through only 1 pipe currently (monitor out), we will always hear our own voices echoing along with any audio being generated from within OBS in any attempt to monitor. We can't pick and choose which sources to monitor coming out of OBS unless another output channel is made available.
On your non-streaming setup my advice was that you can rely on Voicemeeter to do the audio mixing and routing, unless you need to do something with the USB Mixer input in OBS:

In OBS:
  • Mute or disable your USB Mixer input
  • Enable audio monitoring for your media files and route to the "Voicemeeter AUX AIO" or if you prefer to "VB Audio Cable"
In Voicemeeter:
  • Add your USB Mixer as a "Hardware Input 1", and enable only B1 output. If your need to monitor this input you can enable to one of your Hardware Outputs (A1, A2 or A3)
  • If you used "VB Audio Cable", add to the "Hardware Input 2" and enable only B1 and B2 outputs. If you used "Voicemeeter AUX AIO" you already have the input on Voicemeeter so you only need to enabe B1 and B2 outputs. If you need monitoring for this input use one of your Hardware Outputs (A1, A2, or A3)
This way you will get at "B1 Virtual Output" the sound of both "USB Mixer audio input" and "OBS media files". On "B2 Virtual Output" you'll get only the sound from "OBS Media files"

Not sure if this is what you needed.
 
On your non-streaming setup my advice was that you can rely on Voicemeeter to do the audio mixing and routing, unless you need to do something with the USB Mixer input in OBS:

In OBS:
  • Mute or disable your USB Mixer input
  • Enable audio monitoring for your media files and route to the "Voicemeeter AUX AIO" or if you prefer to "VB Audio Cable"
In Voicemeeter:
  • Add your USB Mixer as a "Hardware Input 1", and enable only B1 output. If your need to monitor this input you can enable to one of your Hardware Outputs (A1, A2 or A3)
  • If you used "VB Audio Cable", add to the "Hardware Input 2" and enable only B1 and B2 outputs. If you used "Voicemeeter AUX AIO" you already have the input on Voicemeeter so you only need to enabe B1 and B2 outputs. If you need monitoring for this input use one of your Hardware Outputs (A1, A2, or A3)
This way you will get at "B1 Virtual Output" the sound of both "USB Mixer audio input" and "OBS media files". On "B2 Virtual Output" you'll get only the sound from "OBS Media files"

Not sure if this is what you needed.
Ok, yes I now understand 100% what you're saying.

I guess one of the other requirements that I have not mentioned is that we have specific scenes in OBS where we do not want the USB Mixer audio going out to the stream (so that we can discuss internally among ourselves while media is playing), so we remove USB audio from those scenes. So OBS provides us a way to enable/disable USB mixer audio based on the requirements of the scene.

If we use Voicemeeter to send audio directly to our streaming service, thereby bypassing OBS but allowing monitoring of OBS sources, then we will be sending 100% of our mixer audio 100% of the time, unless we introduce a 'talk-back' feature to our local flow, which we currently cannot do.

We really appreciate your input!!

I fully understand that we are an edge case in what we are trying to achieve and the tools we are using to achieve it. If OBS would allow us to both host remote guests and highlight chat comments on-screen from our various channels (the 2 features from StreamYard that we adore), then I would 100% prefer not to include an external streaming service into our flow.
 

jullit31

New Member
@obsforummember .. may I just confirm that you have tested that method and it works for you? On another thread I was told that the monitor output is taken before any synch delay is added in OBS ( see here ) . Maybe there was something else different on your setup which fixed this?

The method is not working for me and I am pretty desperate at this point .. so if anybody has any clues in this area please do share
I figured out a way to solve audio sync issues.
I followed @obsforummember 's instructions to get OBS audio into, in my case, Discord, which worked great. Thank you!
However, as @lutol and @Entelecheia pointed out, "the monitor output is taken before any synch delay is added in OBS".
Audio filters, on the other hand, are applied to the monitor output. So you can add a VST-plugin for sound delay, such as this one, to your audio source to sync it to the video feed.
 

crace_lunker

New Member
I've been trying real hard to get this to work and I STILL can't, after following everybody's instructions. If anyone can help me out with this, I'd be really really appreciative.

I have OBS running on my Windows desktop and want to send the audio generated by my desktop to Zoom-- but all I'm getting is silence (or poor-quality leakage from my external webcam). I'm using VB-Audio Virtual Cable and here are some of my settings right now:

OUTPUT DEVICE IN WINDOWS SOUND SETTINGS: CABLE Input (VB-Audio Virtual Cable)
INPUT DEVICE IN WINDOWS SOUND SETTINGS: VoiceMeeter Aux Output (VB-Audio Virtual Cable)
ADVANCED AUDIO PROPERTIES IN OBS: Desktop Audio and Mic/Aux are both set to "Monitor and Output"
AUDIO SETTINGS IN OBS: under Advanced, I have Monitoring Device set to CABLE Input (VB-Audio Virtual Cable)
 

ticoy

New Member
I think I have figured this out... I made an account just to post a reply to maybe help others. I am using OBS and the virtualcam plugin to bring video into Microsoft teams. I wanted to use the OBS audio output as a input for microsoft teams so that I could take advantage of filters that I have on the mic in OBS rather than running the Mic directly into Teams. Here is what worked for me.

Step 1: In OBS in the Audio Mixer panel at the bottom, click the settings icon next to your microphone, go to Advanced Audio Properties, and turn on Monitoring for your microphone. I have it set to "Monitor and Output" because I like to use the record function of OBS to test things, if you select "Monitor Only" the mic will not work with the record or stream functions of OBS but can still be used in other applications.

Step 2: Find and download a Virtual Audio Cable program (google). I'm using the VB-Audio Virtual Audio Device. Follow the instructions to install, in the cast of VB-Audio application I downloaded, unzipped, and ran the .exe setup file.

Step 3: In OBS at the top of the screen, go to File -> Settings -> Audio (tab). Under the Advanced panel look for "Monitoring Device". Set this to the input for the virtual cable application "Cable Input (VB-Audio Virtual Cable)" in my case. If you do not see this you may need to close and reopen OBS, restart your computer, or double check your install of the Virtual Audio Cable application.

Step 4: Open the application that you want to use with OBS audio. In my case Microsoft teams. Change the microphone input device to the output of your virtual audio cable application, in my case ""Cable Output (VB-Audio Virtual Cable)". Again if this doesn't appear, try restarting the application or your PC.

Step 5: That's it, it worked for me, I hope it works for others too.
Thank you very much! This worked in google meet...i tested it using media source and window capture...I can't thank you enough...I can now move on to doing other things!
 

davidlstevens

New Member
I think I have figured this out... I made an account just to post a reply to maybe help others. I am using OBS and the virtualcam plugin to bring video into Microsoft teams. I wanted to use the OBS audio output as a input for microsoft teams so that I could take advantage of filters that I have on the mic in OBS rather than running the Mic directly into Teams. Here is what worked for me.

Step 1: In OBS in the Audio Mixer panel at the bottom, click the settings icon next to your microphone, go to Advanced Audio Properties, and turn on Monitoring for your microphone. I have it set to "Monitor and Output" because I like to use the record function of OBS to test things, if you select "Monitor Only" the mic will not work with the record or stream functions of OBS but can still be used in other applications.

Step 2: Find and download a Virtual Audio Cable program (google). I'm using the VB-Audio Virtual Audio Device. Follow the instructions to install, in the cast of VB-Audio application I downloaded, unzipped, and ran the .exe setup file.

Step 3: In OBS at the top of the screen, go to File -> Settings -> Audio (tab). Under the Advanced panel look for "Monitoring Device". Set this to the input for the virtual cable application "Cable Input (VB-Audio Virtual Cable)" in my case. If you do not see this you may need to close and reopen OBS, restart your computer, or double check your install of the Virtual Audio Cable application.

Step 4: Open the application that you want to use with OBS audio. In my case Microsoft teams. Change the microphone input device to the output of your virtual audio cable application, in my case ""Cable Output (VB-Audio Virtual Cable)". Again if this doesn't appear, try restarting the application or your PC.

Step 5: That's it, it worked for me, I hope it works for others too.
Do you have audio latency in Microsoft teams when streaming?
 

ByronWillis

New Member
Ok, yes I now understand 100% what you're saying.

I guess one of the other requirements that I have not mentioned is that we have specific scenes in OBS where we do not want the USB Mixer audio going out to the stream (so that we can discuss internally among ourselves while media is playing), so we remove USB audio from those scenes. So OBS provides us a way to enable/disable USB mixer audio based on the requirements of the scene.

If we use Voicemeeter to send audio directly to our streaming service, thereby bypassing OBS but allowing monitoring of OBS sources, then we will be sending 100% of our mixer audio 100% of the time, unless we introduce a 'talk-back' feature to our local flow, which we currently cannot do.

We really appreciate your input!!

I fully understand that we are an edge case in what we are trying to achieve and the tools we are using to achieve it. If OBS would allow us to both host remote guests and highlight chat comments on-screen from our various channels (the 2 features from StreamYard that we adore), then I would 100% prefer not to include an external streaming service into our flow.
Hey there LivingRoomLive,
I have gone through a lot of iterations of this myself and would recommend the following:

1.) Use Voicemeeter Banana (or Potato) to be the first place to send all of your audio inputs. This includes your Xenyx USB Mixer (primarily Mic, no?), your browser (YouTube videos?) your computer's music player (Spotify or other), etc.
2.) Create two mixes in Voicemeeter: "mic" and "other audio". Use the hardware outputs in Voicemeeter Potato H2 (Mic) and H3 (computer audio mix). Send the "other audio" mix to your USB mixer as well (so you can hear it through your headphones via mixer headphone monitor jack).
3.) Send H2 (Mic) and H3 (audio mix) to OBS as separate audio inputs using virtual audio cables.
4.) Set your scenes in OBS to either include your H2 (Mic) and H3 (audio mix) or H3 (audio mix) ONLY so that you allow yourself to conduct internal chats by selecting the appropriate scene within OBS.
5.) Send your output from OBS to Streamyards using a virtual audio cable as your monitor out and virtualcam as your video out.

FYI I recommend using the H1, H2, H3, H4, H5 output channels on Voicemeeter Potato because of the built in capability to apply sync delays on them which you may find you need to use. Voicemeeter does not support audio sync delay on B1, B2, and B3 (virtual outputs).

This avoids the problems you mentioned:
1.) Hearing an echo of yourself. Your mic audio will go a.) Mic > USB Mixer > Voicemeeter > OBS > Streamyard and also b.) Mic > USB Mixer > Headphones. You won't hear a on your headphones because you will not be monitoring OBS in headphone.
2.) Can't send "all sounds but mic" to stream. You can by selecting the appropriate scene in OBS.
3.) Can't hear video clip sounds in headphones. You will hear them in this pathway: Chrome > Voicemeeter > Voicemeeter output to USB mixer > USB mixer monitor > Headphones. Simultaneously they will be sent to OBS using a different Voicemeeter output.
 

erinares

New Member
I've looked for an hour with every search term I could come up with along with excluding specific search results to get more accurately what I was going for. I have found NOTHING that gets exactly what I'm looking for.
I need this specifically to play videos through a camera device which I have working. The only issue is there's no audio. I've read article after article for virtual cables, reddit posts, obs forums, questions, youtube videos, and I have still been unable to find what I'm looking for.
I need to take my audio outputted from OBS and send it into my microphone or have a virtual microphone device. I don't want my desktop to my microphone since I can't have it picking up any audio from other people in group meet calls which only support cameras and microphone input.

Is this possible? If so, how would I go about doing this?
Hi.
I made these two videos on YouTube hoping they will help you.

1.- Send and receive audio and video with OBS STUDIO using VirtualCamp and VB-CABLE Virtual Audio Device: https://youtu.be/mJQ2UIjCQfo
2.- Monitor OBS Audio in Zoom, Google Meet, etc., with VoiceMeeter:
https://youtu.be/PB3u89Yuhkg
 

NickReilingh

New Member
There's another major shortcoming with using monitoring for output that hasn't yet been mentioned here: OBS will not fade audio in and out on the monitored version of the audio. Additionally, any audio media sources with "Restart playback when source becomes active" UNchecked will continue playing through the monitor even when they are not visible in the current scene.

The only way around this that I have found is to use an NDI virtual output plugin for OBS with an NDI virtual input app, to capture the actual OBS audio output (NOT monitor) as a distinct audio input that can then be routed as desired using the tools described above. The problem then is latency -- there's a lot of latency overhead associated with the NDI conversion. So if you are using NDI audio with direct video capture from OBS, they will be out of sync unless corrected. Using the both audio and video from NDI will be in synch with one another, of course, so this will depend on your application.

If accurate monitoring of audio fade-in/out is important to you, please upvote the feature suggestion: https://ideas.obsproject.com/posts/37/fade-audio-when-you-transition-scenes
 
Top