Bad audioquality with pixelstreaming


The pixelstreaming plugin is awesome.

However, the audio quality can in my opinion not compete with the already near perfect picture-quality.
(IMHO it is not even near to be comparable).

The default audio-quality seems to be mono and “voice-capture-based,” i.e. very very low fi.

I have now tried a lot of approaches for several days in order to change the settings of the used (opus) encoder and make it transmit hq quality, but without any luck.
Regardless of what I change, the quality stays exactly the same on any client (Chrome, Firefox, UE-MediaPlayer).

It seems to have to do with the WebRTC SDP-offer/answer communication of the streamer and the clients like for example stated in these links, but I do not have enough information.!topic/discuss-webrtc/L4AzllUOTBM

Exchanging SDP-substrings in FSignallingServerConnection::SendOffer and FSignallingServerConnection::SendAnswer or directly modifying webRtcPlayer.js to change the offer-SDP did not have any effect for example. But I have no idea what I am doing.

The audio-capture itself seems to be allright (48kHz/stereo), so it probably happens on client-side or during connection negotiation?

I am now a bit confused why none of the above approaches has changed anything and would like to avoid to parse and exchange intermediate strings if possible. Does not sound like the right approach to me.

Why is it not possible to just call a function to change the default remote-audio quality ?
Is there any way to ensure that pixel-streamer clients get better audio-quality?

Latency is not that important. Is this the wrong usecase :slight_smile: ?

I can see in the log when the streamer connects to the signalling-server that there are audio-settings which can be bad for hq audio:

WebRtcVoiceEngine::ApplyOptions: AudioOptions {aec: true, agc: true, ns: true, hf: true, swap: false, audio_jitter_buffer_max_packets: 50, audio_jitter_buffer_fast_accelerate: false, typing: true, experimental_agc: false, extended_filter_aec: false, delay_agnostic_aec: false, experimental_ns: false, intelligibility_enhancer: false, residual_echo_detector: true, }

But I also have not found any documentation or way to compile the WebRTC plugin myself for changing the AEC/AGC or HF settings before the pixelstreaming plugin connects or change these settings on demand.

Has anybody achieved better results or can give me a pointer where to look ?

It can not be so difficult to transmit audio which does not sound like 6kbit/sec :P.
It is only ONE SIMPLE setting somewhere. Not worth to look days for it.

But it must be possible ? Slightly frustrated.


hi, same problem here. did you found a solution?