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

ByronWillis

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

Totally agree. I wish there were a virtual audio output option similar to virtual cam. In fact I wish there were multiple virtual audio outs so that I could create a live mix for stream and then have a multi-track recording that I could edit in post that capture other audio sources that I have muted for stream.
 

wcndave

New Member
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 turned it on for my "desktop audio", not mic. the sound from programs and external sources is there, not in the mic. Although you might need to monitor the mic too.
tep 5: That's it, it worked for me, I hope it works for others too.

This didn't work for me until I went into windows sound settings and set this as default input device.
Even if setting the virtual device as the input device in meet/teams/zoom/skype, nothing at all worked until I set it in windows settings...
 

CYM

New Member
Do you know is the dev team is willing to include a kind of "virtual mic" into the latest version of OBS ? Such a pitty that Virtual Cam is a so great feature to broadcast the video flux directly to the webRTC video input, but that the sound mixed into OBS could not be used as a the webRTC audio input.
In addition, I never managed to use (even to understand !) the Virtua Audio Cable (or similar) device. Too complicated.
 

wcndave

New Member
Virtual Cable is a bit of a brain bender at the start, yes.

Imagine it as a real cable.
What I did to get audio to say Zoom or Meet, was to set OBS to monitor using the cable input. So the sources in OBS are all going into the IN end of the virtual cable.

Then I plug the "out" end of the cable into Zoom as the input into zoom. So under mic source selection, choose VCable out.

what makes it seem odd at first I think, is that you plug in into out and out into in.....
 
  • Like
Reactions: CYM

ogrfnkl

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.

This solution seemed to work pretty well at first, as the Zoom recording started out with the OBS audio output (piped through VB Audio Cable) apparently syncing well with the OBS Virtual Camera video. However, to my chagrin, after about 15 seconds, the audio began to drift out of sync with the video. What's interesting is that this time, the audio was falling BEHIND the video, which is the opposite to what happens when Zoom is set to record the microphone directly (then, the VIDEO falls behind). The bottom line: there is still no method that'll get the video and the audio from OBS to really sync up in Zoom. I hope the developers will consider integrating an audio output for OBS Virtual Cam that would be visible as a microphone input in other programs...
 

LiveTV

New Member
I work in sports television where things get amazingly complex. The ability to provide multiple output points for both audio and video is critical and it does not take long for a seemingly simple OBS project to need that facility. Both audio boards and switchers have many different configurable outputs (and have had them for a long time). I cannot stress enough how important these are and this thread is a good example!

To put it into OBS terms, having several audio destinations (like the monitor output) would be great but going a step further (as mentioned earlier) to alleviate the need for virtual audio cables is even better. I think there needs to be a bare minimum of 2 outputs besides the record stream and the monitor output. These outputs would appear as system inputs as VACs do now. Ideally there would be more than 2, allowing them to be dynamically created as needed (so that when selecting audio sources for things like Zoom you don't have 10 unused sources cluttering things up. Also on the wish list is optional delays in the audio stream to each output. Maybe this can be done through scenes.

Likewise, having more than one OBS Virtual Cam is more important than you think! Having the ability to ISO and stream a single scene without airing it to the program stream would be huge!
 

bxm83

New Member
I'm still eagerly hoping for this option. I think especially in the last few months, video conferencing has become a large source of OBS users. I'm a teacher myself and I use it to manage my webcam over sharing my screen for my students. Overall, it seems to work a lot better. But you're right. The audio routing options are painfully limited. I can only use certain setups and be able tp hear whats going on.
 

mic_hall

New Member
You can achieve all you need by installing NDI plugin into OBS and "NDI Virtual Input" from ndi.tv. This combo will create a virtual camera and a virtual sound device.
 
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?
watch this video
this
watch it full there you will get an answer
 

Solidizzle

New Member
Hi all,

I have been on the search for a solution to the exact problem, that has been described here. I wish to use obs audio from my mic including the filters as an input source in MS Teams. I have installed virtual audio cable and voicemeeter. I set the cable input as monitoring device and set the aux/mic to Monitor and Output. For the love of god, it won't work.

Because I have voicemeteer banana installed I also find the voicemeeter input and output sources in my sound settings. Can these be a problem here. I also tried to let the cable output listen to the cable input. It does not make any difference. Is there any obvious thing I could try. This is driving me nuts.
 

bxm83

New Member
You can achieve all you need by installing NDI plugin into OBS and "NDI Virtual Input" from ndi.tv. This combo will create a virtual camera and a virtual sound device.
I dont see how this creates an audio device that meet can pick up. I only get the video device.
 

Jared Koester

New Member
I found a hardware solution:

Take a male-to-male 3.5mm audio cable and plug it into both the line-out and the line-in on your PC.

Set the line-in port as your microphone on zoom.

Now OBS is outputting sound that is being piped right back into the line-in port that zoom is listening to.
 

bxm83

New Member
You can achieve all you need by installing NDI plugin into OBS and "NDI Virtual Input" from ndi.tv. This combo will create a virtual camera and a virtual sound device.
Disregard my previous post. I got this working. It seems to be working really well but its probably more taxing on the machine than it needs to be. I'd still prefer an integrated solution but this will work for now.
 

RockBastard

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.
It works, thanks. However, I get quite a bit of sound degradation, it sounds a bit muffled, when sending my sound to Zoom or Skype from OBS using Virtual Audio Cable, any ideas?
 

JunaidAkhlaq

New Member
I had this issue too (whilst using OBS to feed content into StreamYard). StreamYard won't pick up the OBS-Audio, but will only recognise microphones (it is browser-based).

I have ended up using SparkoCam to fill the gap. It can pick up the OBS-Audio output and present it as 'SparkoCam Virtual Microphone', which I can then use as the audio source for StreamYard (along with the OBS Virtual Cam plugin for the video).

SparkoCam isn't the most robust software, but it works pretty well most of the time. Occasionally the audio goes out of sync, but switching off & on the virtual microphone in SparkoCam sorts it out.

I'd love to see a direct Virtual Microphone output feature for OBS.


How did you pick OBS audio on SparkoCam? Did you use your audio array? But what about the audio that you may have turned Monitor Off in OBS? What did you use for that?
 

daxliniere

New Member
************* THIS IS WHAT WE NEEDED!! *************
:D :D :D :D :D :D :D :D :D :D


(Watch the video on how to set it up and if you are using a StreamDeck to toggle mute for audio sources, make sure you enable the option Mute: Linked to source muting)


Note: You will still need to have something like VB-Audio Virtual Cable installed. No idea how to solve this on Mac, maybe someone can chime in.
 

CodingAlbert

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.

OK, I misundertood @My Living Room: Live! 's post.

obsforummember explained the same instructions MUCH CLEARER in step by step manner. Now I managed to set VB-Cable up the correct way! Ethernal thanks for setting up an account just for the sake of these nstructions!
 

matp

New Member
Been chasing this around today trying to find the optimal setup. I am familiar with virtual cables and multi-input/output devices on macos. I know this is windows forum but the concepts and problem are the same. Seems like there isn't an optimal solution out there as you either lose audio monitoring or lose audio switching (along with scene switching).

So the virtual audio cable approach half-way works with the virtual camera (zoom, teams, etc cases).

Option 1 - Setup
  • Desktop audio OUTPUT goes into virtual cable (ie VLC, game, whatever audio).
    • Virtual cable may not be needed on windows to capture desktop audio.
  • OBS Monitor OUTPUT goes into virtual cable (e.g. audio from scenes).
  • Microphone combines with virtual cable (perhaps via multi-input device or software mixer depending on your OS/app options).
    • This happens OUTSIDE of OBS.
    • Your mic audio is not managed/switched by OBS when you switch scenes.
    • So mic is always on or you have to manually switch it (additional step) in another app.
Computer speakers set to monitor virtual cable (ie before mic input combined so you don't have feedback or "listening to yourself" problems).

App (zoom, teams, whatever) audio input set to software mixer or multi-input device depending on how you combined your mic input with the virtual cable.

App camera input set to OBS virtual camera.

Option 2 - Setup
  • Desktop audio OUTPUT goes into virtual cable AND computer speakers (e.g. via multi-output device for monitoring)
  • Microphone INPUT in OBS (global or within scene)...so audio switching when scene switching is possible.
  • OBS Monitor output set to virtual cable (not multi-output device which feeds computer speakers).
    • You lose audio monitoring for everything in OBS because virtual cable will not feed computer speakers or headphones.
    • Upside: No microphone echo or hearing yourself and you get microphone audio switching.
App (zoom, teams, etc) audio input set to virtual cable (gets desktop audio, obs video audio and mic audio).

App camera input set to OBS virtual camera.

If you have more than one virtual cable device available then you can do a modification of this where you use the first virtual cable to route Desktop audio as global or scene-switchable input to OBS (as well as to computer speakers for output) and use the second virtual cable for OBS output and App (zoom/etc) input. This 2 cable modification gets you OBS-switchable desktop audio...but you still don't have audio monitoring of assets played by OBS. On windows you may not need a second virtual cable to capture desktop audio...might be a mac-only thing.

Solution (doesn't exist yet)

It seems like the logical thing would be to treat the virtual camera as a first-class "Output" (ie in addition to recording/streaming) by creating a "virtual camera audio output device" selection (in addition to the monitor device). Hardware switchers like the Atem Minis allow you to stream, record and emulate a webcam all at the same time as you monitor audio and video (hdmi out)...at least on the Atem Mini Extreme I have.

We can already select whether we want a given audio to be:
  • monitor off
  • monitor only (mute output)
  • monitor and output
...but currently "output" has no meaning in the virtual camera case (only recording/streaming cases). So we have to hack the Monitor output into a virtual cable to make the virtual webcam more usable with OBS audio switching.

If this was implemented:

selectable audio output device in addition to monitor device to use when virtual camera is activated

...then the basic setup would be...

Setup 3 - not yet possible

Set "virtual camera audio OUTPUT device" to virtual cable B.
Set MONITOR device to speakers or headphones so you can monitor/mix your program in OBS.
  • Desktop audio output goes to virtual cable A (if necessary to capture it...sorry I know this is windows forum)
    • Set as input (global or scene-switchable in OBS)
    • Audio monitoring: Monitor + Output (ie goes to output:virtual cable B and monitor:speakers)
  • Microphone input to OBS (global or scene switchable).
    • Audio monitoring: Monitor off (ie goes to output: virtual cable B only...no echo or feedback problems).
  • Videos with audio in OBS scenes
    • Audio monitoring: Monitor + Output (goes to output: virtual cable B and monitor:speakers)
App audio input: virtual cable B (OBS "virtual camera audio output device")
App video input: OBS virtual camera

Slightly more elegant but perhaps less flexible solution...

The more elegant (but more complex) solution would be to skip the "virtual camera output selection" and instead create a virtual audio input device that is enabled alongside the virtual camera. Basically just a virtual cable under the hood that takes the OBS audio output and exposes it as a selectable input device in the OS.

Or you could do both. A drop-down to select the OUTPUT audio device for virtual camera (dropdown contains OS audio output devices including any virtual cables installed)...and a checkbox that says: "create virtual input device for output". Checkbox would disable dropdown and could be default.
 

matp

New Member
Solution (doesn't exist yet)

So I was not particularly happy with either of the half-solutions above. Searching around a bit more I found the Audio Monitor Plugin for OBS.

Probably all the OBS experts already know this is the way to solve this and this is obvious to them...but I didn't...so figured I would post back here with details on how to accomplish the desired setup (not half way) I described in my previous post using this plugin.

It still feels quite complex and I created a diagram just so I could easily sanity check my setup. So it would still be great if the solution I proposed above was eventually implemented directly in OBS (first class audio output device for virtual cam case where OUTPUT goes separate from MONITOR device so you don't have the microphone problem).

Maybe my diagram helps someone. I'm on a mac but left the concepts general enough they should apply to both systems. The main differences (I think) are the following:

  • OBS doesn't require virtual cable to capture desktop audio in Windows (apparently does in Mac) - Windows users can ignore "Virt. Cable A" in my diagram.
  • On MacOS you can create and use a multi-output device (from "Audio Midi Setup") to combine a virtual cable B and speakers (or headphones) into a single output device (OBS Audio Monitor device).
    • On windows I don't know if this exists so you may need a software mixer like the banana thing people mentioned for this output stage.
    • However this would be "set and forget" as OBS handles the audio switching for you...the mixer is just to combine a virtual cable and whatever output device you want for monitoring (speakers, headphones) into a single Output device for OBS to target.
This example uses zoom but this should work for any app that allows you to select system audio input device (and webcam/video device).

The benefits of this setup:
  • Desktop audio switching (e.g. when changing scenes) AND monitoring.
  • OBS media (e.g. video files in OBS scenes) audio monitoring (switching of course is a given since they are played by OBS)
  • Microphone audio switching (e.g. when changing scenes) WITHOUT monitoring (no echo or feedback issue)
  • All the above audio is fed into a single virtual cable that can be used as an audio input device for Zoom or whatever.
Of course if you don't want audio switching for a specific audio source then you just add it in the global audio settings rather than within a specific scene.

2021-06-18 - OBS Setup - Switchable Desktop and Microphone Audio.png
 
Top