nurdism/neko

[FEATURE] Add option to enable stereo audio playback

Closed this issue · 10 comments

Is your feature request related to a problem? Please describe.
Nope, just an plain ol' feature request.

Describe the solution you'd like
I'd love to be able to launch neko with 2-channel stereo (instead of 1-2 channel mono) audio piped to peers.

m1k1o commented

With opus encoder, try this:

    environment:
      NEKO_AUDIO: pulsesrc device=%s ! audio/x-raw,channels=2 ! audioconvert ! opusenc

With opus encoder, try this:

    environment:
      NEKO_AUDIO: pulsesrc device=%s ! audio/x-raw,channels=2 ! audioconvert ! opusenc

@m1k1o Wonderful, I'm going to give this a go. Thanks!

@m1k1o Do I enable opus encoder like so?

environment:
    NEKO_OPUS: null
    NEKO_AUDIO: pulsesrc device=%s ! audio/x-raw,channels=2 ! audioconvert ! opusenc
m1k1o commented

@alectrocute Don't need to setup anything. Opus is default encoder.

In that case, @m1k1o looks like adding your specified NEKO_AUDIO config didn't work for me. Any ideas what to try next?

m1k1o commented

That string should make pipeline stereo. So it is most likely problem at the ends of this pipeline.

I checked pulseaudio sink, auto_null.monitor seems to be stereo:
image

Supplied string forwards stereo from auto_null.monitor to appsink:
image

Again, stereo:
image

At this time audio is leaving server and going to client. In SDP message is stereo mentioned:
image

I have no idea where is that stereo getting "lost".

Hmm, @m1k1o – very interesting. It appears there's a bug in the client, as playback is getting squashed to mono (for me, on latest Chrome + macOS 10.15.3).

m1k1o commented

@alectrocute on Firefox it's working properly. Maybe chrome is just strange mixing audio.

@alectrocute on Firefox it's working properly. Maybe chrome is just strange mixing audio.

Yup, I think you're correct. How Chrome. I'll look into it.

https://bugs.chromium.org/p/webrtc/issues/detail?id=8133

Just going to leave this here, I wish I found it earlier as to not to waste your time @m1k1o but nonetheless, your content above is helpful in general for documentation.

Am closing this issue because it's a Chromium bug.