[LAU] Streaming setup with OBS and JACK

Joel Roth joelz at pobox.com
Wed Jul 25 10:14:42 CEST 2018


Hi Philipp,

On Wed, Jul 25, 2018 at 08:56:56AM +0200, hollundertee at gmx.net wrote:
> Hi,
> 
> I have to apologise, this mail is going to be long, so I'll try to
> structure it a bit.
> 
> Overview
> I have been live streaming on twitch for the past year, mostly games
> and purely as a hobby. The possibilities of PA and OBS for routing and
> audio processing are rather limited, I'd like to try and improve my
> setup by adding JACK to the mix.
> 
> Current Setup
> 2-3 Audio interfaces. My main one is the UA-25 usb interface. There is
> another in the GPU connected via HDMI to the monitor and a usually
> deactivated one on the motherboard.
> I am mostly streaming gameplay, most if not all games rely on ALSA or
> PulseAudio, so I have PulseAudio running. In OBS I simply capture the
> UA-25 "desktop output".
> I also have it capture the UA-25 inputs, of which only one is connected
> to the microphone. There is an option within OBS to have that signal on
> both channels.
> I use the compressor plugin built into OBS with pretty much "default"
> voice/voiceover settings.
> Afterwards "desktop" and voice get mixed to a stereo signal and
> streamed.
> I monitor the "desktop" signal as it is immediate and doesn't contain
> my voice. To check whether the mix is fine I need to check either the
> outgoing or the incoming signal (which is delayed by a few seconds).
> Currently I route the incoming signal via PA to the GPU audio
> interface. To actually hear it I need to physically switch the
> headphones for the in-ears connected to the monitor.
> I do not use a cam and intend to keep it that way.
> 
> Current Problems
> A) Monitoring is cumbersome because I need to switch between the proper
> headphones and the in-ears. While the in-ears aren't bad by themselves,
> the sound through GPU -> HDMI -> Monitor is pretty bad. It is barely
> enough to judge whether or not the levels are totally off.
> I'd much prefer to be able to monitor using my proper headphones at the
> push of a button.

> B) OBS comes with rather few audio plugins by default
> (https://github.com/obsproject/obs-studio/wiki/Filters-Guide) and I'm
> not convinced they are more than serviceable. The compressor is hard to
> set up, I wish it had at least some visual indication for the threshold.
> 
> Possible solution
> While there are a few effects rack for Pulse Audio, like
> https://github.com/wwmm/pulseeffects, and Pulse Audio can do routing I
> don't understand PA's routing and rather use JACK. Since I haven't
> followed Linux Audio land quite as closely the last few years I have a
> few questions.
> 
> 1) Can someone tell me whether the OBS jack plugin is good enough or
> does something stupid? The code can be found here:
> https://github.com/obsproject/obs-studio/tree/master/plugins/linux-jack

> 2) Is there a reliable and if possible hassle free way to get ALSA and
> PA into JACK? ALSA loopback would probably not work for programs using
> PA directly.

One way is to use PA and JACK on separate audio interfaces.

Pulseaudio can also be run above JACK.

https://github.com/jackaudio/jackaudio.github.com/wiki/WalkThrough_User_PulseOnJack

I would suggest getting as much functionality handled in the
JACK layer as possible.

> 3) I think switching around monitoring should be doable with a simple
> script calling jack_connect, provided the ports are predictably named.
> Even I should be able to do that. Is there another solution?

Another solution would be to drive both monitors, and set up
some kind of crossfader, if you need one. 

> 4) Even though it's a small setup I'd need some sort of session
> management to bring up at least the jack side of things.

jackd, the JACK daemon, runs continuously. Various DAWs and 
recorders can make JACK connections for signal I/O for
individual tracks. Being able to run shell scripts
on project load or track setup can be useful, too.

> 5) Finally what do you recommend as plugin host and compressor plugin
> for voice?

There are many possible plugin hosts. Some can do 
glitch-free switching in and out of effects.

I'm partial to Ecasound, which is flexible enough to do I/O
with JACK and ALSA devices simultaneously (JACK usually
works with a single sound card.) Others will recommend a
compressor, there are many LADSPA and LV2 plugins available.

> Thank you in advance for your help. I can at least document the setup
> somewhere, for the next one who tries to do something like that. I
> could do that on my blog (that no one ever reads) or if you know some
> good wiki or something I can put it there.

Posting an article (or link a blog article) would be
on-topic for this list.  And here is one wiki:
https://wiki.linuxaudio.org/wiki/start

cheers,

joel

> Best Regards,
> Philipp
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user at lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-user

-- 
Joel Roth
  


More information about the Linux-audio-user mailing list