rse / vingester

Ingest Web Contents as Video Streams
https://vingester.app
GNU General Public License v3.0
187 stars 16 forks source link

Any chance to capture audio from each Vingester window? #7

Closed Gabriele-LS closed 3 years ago

Gabriele-LS commented 3 years ago

Hello @rse. As I mentioned, my current workflow is based on multiple Chrome instances, each connected to a different participant in my show. Vingester might be a viable alternative, but I think it's missing one key feature: the ability to manage the incoming audio from the various windows as independent streams. With my current workflow, I can use Audio Hijack to capture each Chrome instance's audio (see screenshot). How could I do the same with Vingester?

Screenshot 2021-04-09 at 07 59 26
rse commented 3 years ago

Interesting point. This is a duplicate issue to #5. I'll see what I can do...

rse commented 3 years ago

I've figured out how we can capture the audio of each frameless window in non-NDI situations and have it running for me. I've to still test this in more depth and cleanup my implementation, but expect one of the next versions (>= 1.5.0) to include this functionality.

Gabriele-LS commented 3 years ago

Wow! If you need me to test something, feel free to ask.

rse commented 3 years ago

This functionality is now available with Vingester version 1.5.0. Please give it a try.

Gabriele-LS commented 3 years ago

I just tested it… It works! Wonderful!

Is there any chance to define the output channels? The Dante Virtual Soundcard could be configured to have more than two output channels. It would be fantastic to have the ability to send the audio directly to a specific pair of channels without having to use an audio routing software like Loopback.

Anyway, great job, @rse! You are developing a superb little piece of software.

rse commented 3 years ago

Let me understand the request in more detail: you are not talking about the NUMBER of audio channels (which is already available) but the particular ASSIGNMENT of audio channels? So, you would like to send a stereo (channels 0+1) input to perhaps an output channels 4+5 or something like this?

Gabriele-LS commented 3 years ago

Exact. That's what I have to do now:

Screenshot 2021-04-11 at 17 58 09 Screenshot 2021-04-11 at 17 58 12

Two virtual audio interfaces that route the two Vingester browsers to two different pairs of channels. That way, I can have these channels available in my Dante network, I can send them to a mixer, or use them in a video mixing software.

Gabriele-LS commented 3 years ago

I made another screenshot to show you one of my use cases. Audio goes from Vingester to a 2-channel virtual audio interface, then it is routed to a 16-channel virtual audio interface, and then it goes into a software mixer.

Screenshot 2021-04-11 at 18 16 46

It would be great to skip the 2-channel virtual audio interface to 16-channel virtual audio interface passage.

rse commented 3 years ago

Ok, understood. Thanks for the explanation. I've to check whether this is possible from within the Electron technology stack underlying Vingester. If it is possible, I'll try to implement it.

How would one to configure this inside Vingester? Instead of saying just "2" in the Channels field one perhaps can say "1:3,2:4" to tell Vingester that channel 1 of the Web Contents goes to channel 3 of the output device and channel 2 of the Web Contents goes to channel 4 of the output device? Something like this?

Gabriele-LS commented 3 years ago

That's how mimoLive manages that. I think it's a good way. But, of course, it could also work as you described.

Screenshot 2021-04-11 at 20 29 14
rse commented 3 years ago

But are there never more than 2 channels in any Web Contents? That was the reason why the Vingester "Channel" is an input field until now and not just a "none/mono/stereo" toggle...

Gabriele-LS commented 3 years ago

Indeed. The point is capturing multiple browser audio and sending it to a multichannel audio device. Let's suppose that I have 4 browser windows (B1, B2, B3 and B4) each of them outputting 2 audio channels (L and R). How can I send that audio into a mixer, a DAW, a recorder, etc? I can use an 8-channel audio card (X). But I need to route the audio to the various channels of that card. Something like this:

B1.L -> X.1 B1.R -> X.2

B2.L -> X.3 B2.R -> X.4

B3.L -> X.5 B3.R -> X.6

B4.L -> X.7 B4.R -> X.8

Gabriele-LS commented 3 years ago

By the way, the possibility to choose the number of channels is available only if you use NDI output. That's why I did not take it into account. Maybe you are right, it could happen that a webpage outputs more than 2 audio channels. That never happened to me. And I don't know what would happen in that case.