[LAU] Streaming setup with OBS and JACK

hollundertee at gmx.net hollundertee at gmx.net
Wed Jul 25 08:56:56 CEST 2018


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.

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?

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.

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

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.

Best Regards,
Philipp


More information about the Linux-audio-user mailing list