discord-screenaudio
discord-screenaudio copied to clipboard
[BUG] Can't get stream audio to work with EasyEffects
Using Flatpak on OpenSUSE Tumbleweed. Also using Pipewire and I'm on X11. I'm also using EasyEffects. Those in the discord group report that there is no stream audio and that my mic audio is doubled up (echo effect).
Edit: I just tested and it seems that the issue is EasyEffects running. When I close EasyEffects, everything works fine.
I managed a workaround with Helvum by manually patching the sources to the proper sinks, but it would be nice if discord-screenaudio properly detected EasyEffects and acted accordingly.
Specifically what it does is instead of patching 'discord-screenaudio-virtmic' into 'chromium input' it instead patches 'EasyEffects Source' (which is the source for input processing in EasyEffects resulting in a doubled up mic) into 'chromium input' resulting in the game audio not coming through the stream properly either.
Can you share the program console output when this happens?
I hope this is what you need. This is what pops up immediately after starting a stream. Let me know if there's anything else I should provide.
[virtmic] Starting Virtmic with target "Insurgency: Sandstorm" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n Sending heartbeat" [virtmic] Added: discord-screenaudio [virtmic] Added: Chromium input [virtmic] Added: discord-screenaudio [virtmic] Added: Insurgency: Sandstorm [virtmic] Link: Insurgency: Sandstorm:140 -> 177 [virtmic] Link: Insurgency: Sandstorm:173 -> 203 [virtmic] Added: steam [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n Heartbeat ACK received" [userscript] Found 'discord-screenaudio-virtmic' [virtmic] Added: Chromium input [discord] "updateVideoQuality: {\n \"remoteSinkWantsMaxFramerate\": 30\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: 30, encodingVideoMaxBitRate: undefined, localWant: 100" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n [CONNECT] wss://us-central4949.discord.media/" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Connecting to RTC server wss://us-central4949.discord.media/ with context: stream, rtc-connection-id: f9cb5626-13b8-4a91-a85e-436bc9da1619" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connection state: AWAITING_ENDPOINT => CONNECTING" [virtmic] Added: discord-screenaudio [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Connected to RTC server." [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connection state: CONNECTING => AUTHENTICATING" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n [CONNECTED] wss://us-central4949.discord.media/ in 284 ms" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n [HELLO] heartbeat interval: 5000, version: 7, took 285 ms" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n Starting heartbeat with interval: 5000" [discord] "%c[RTCControlSocket] \nfont-weight: bold;\ncolor: purple;\n [READY] took 317 ms" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connection state: AUTHENTICATING => RTC_CONNECTING" [discord] "%c[Connection] \nfont-weight: bold;\ncolor: purple;\n Using Unified Plan (Chrome 87.0.4280.144)" [54:165:0821/184101.698771:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699177:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699294:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699409:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699550:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699671:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699782:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.699907:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.700059:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.700192:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [54:165:0821/184101.700303:ERROR:audio_rtp_receiver.cc(90)] AudioRtpReceiver::OnSetVolume: No audio channel exists. [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n Renegotiating: Streams changed" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n Renegotiating: Initial negotiation" [discord] "updateVideoQuality: {}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: undefined, localWant: 100" [discord] "updateVideoQuality: {\n \"remoteSinkWantsPixelCount\": 0,\n \"encodingVideoMinBitRate\": 500000,\n \"encodingVideoMaxBitRate\": 4000000,\n \"encodingVideoBitRate\": 600000,\n \"streamParameters\": [\n {\n \"type\": \"video\",\n \"active\": false,\n \"rid\": \"100\",\n \"ssrc\": 206201,\n \"rtxSsrc\": 206202,\n \"quality\": 100,\n \"maxBitrate\": 4000000,\n \"maxFrameRate\": 30,\n \"maxResolution\": {\n \"type\": \"fixed\",\n \"width\": 1280,\n \"height\": 720\n }\n }\n ]\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 4000000, localWant: 100" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => have-local-offer" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connected to media server: 66.22.204.12:50003" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Sending local SDP to RTC server." [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n iceGatheringState => gathering" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Remote media sink wants: {\"any\":100}" [discord] "updateVideoQuality: {\n \"remoteSinkWantsPixelCount\": 0,\n \"encodingVideoMinBitRate\": 500000,\n \"encodingVideoMaxBitRate\": 4000000,\n \"encodingVideoBitRate\": 600000,\n \"streamParameters\": [\n {\n \"type\": \"video\",\n \"active\": false,\n \"rid\": \"100\",\n \"ssrc\": 206201,\n \"rtxSsrc\": 206202,\n \"quality\": 100,\n \"maxBitrate\": 4000000,\n \"maxFrameRate\": 30,\n \"maxResolution\": {\n \"type\": \"fixed\",\n \"width\": 1280,\n \"height\": 720\n }\n }\n ]\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 4000000, localWant: 100" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n Renegotiating: Codecs changed" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Setting media-session-id: 5550ec4de064bb8f20fc3dd75ea6d0c7 for rtc-connection-id: f9cb5626-13b8-4a91-a85e-436bc9da1619" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n iceGatheringState => complete" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n iceConnectionState => checking" [discord] "Connection state change: CONNECTING => ICE_CHECKING" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC media connection state change: RTC_CONNECTING => ICE_CHECKING" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connection state: RTC_CONNECTING => ICE_CHECKING" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => stable" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => have-local-offer" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n iceConnectionState => connected" [discord] "Connection state change: ICE_CHECKING => CONNECTED" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC media connection state change: ICE_CHECKING => CONNECTED" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n RTC connection state: ICE_CHECKING => RTC_CONNECTED" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n Renegotiating: Streams changed" [discord] "updateVideoQuality: {\n \"encodingVideoWidth\": 1280,\n \"encodingVideoHeight\": 720,\n \"encodingVideoFrameRate\": 30,\n \"encodingVideoBitRate\": 600000,\n \"encodingVideoMinBitRate\": 500000,\n \"encodingVideoMaxBitRate\": 4000000,\n \"streamParameters\": [\n {\n \"type\": \"video\",\n \"active\": false,\n \"rid\": \"100\",\n \"ssrc\": 206201,\n \"rtxSsrc\": 206202,\n \"quality\": 100,\n \"maxBitrate\": 4000000,\n \"maxFrameRate\": 30,\n \"maxResolution\": {\n \"type\": \"fixed\",\n \"width\": 1280,\n \"height\": 720\n }\n }\n ],\n \"remoteSinkWantsPixelCount\": 0\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: 1280, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 4000000, localWant: 100" [discord] "BaseWebRTCConnection.updateVideoQuality: old: undefined x undefined, new: 1280 x 720" [discord] "BaseWebRTCConnection.updateVideoQuality: old: undefined x undefined, new: 1280 x 720" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => stable" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Remote media sink wants: {\"any\":100}" [discord] "updateVideoQuality: {\n \"remoteSinkWantsPixelCount\": 0,\n \"encodingVideoMinBitRate\": 500000,\n \"encodingVideoMaxBitRate\": 4000000,\n \"encodingVideoBitRate\": 600000,\n \"streamParameters\": [\n {\n \"type\": \"video\",\n \"active\": false,\n \"rid\": \"100\",\n \"ssrc\": 206201,\n \"rtxSsrc\": 206202,\n \"quality\": 100,\n \"maxBitrate\": 4000000,\n \"maxFrameRate\": 30,\n \"maxResolution\": {\n \"type\": \"fixed\",\n \"width\": 1280,\n \"height\": 720\n }\n }\n ]\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 4000000, localWant: 100" [discord] "UnifiedConnection.setTransceiverEncodingParameters: maxBitrate: from 'undefined' to '4000000'" [discord] "BaseWebRTCConnection.updateVideoQuality: old: 1280 x 720, new: undefined x undefined" [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => have-local-offer" [OpenH264] this = 0x0x7f110000b030, Warning:ParamValidation(), AdaptiveQuant(1) is not supported yet for screen content, auto turned off [OpenH264] this = 0x0x7f110000b030, Warning:ParamValidation(), BackgroundDetection(1) is not supported yet for screen content, auto turned off [OpenH264] this = 0x0x7f110000b030, Warning:bEnableFrameSkip = 0,bitrate can't be controlled for RC_QUALITY_MODE,RC_BITRATE_MODE and RC_TIMESTAMP_MODE without enabling skip frame. [discord] "%c[UnifiedConnection] \nfont-weight: bold;\ncolor: purple;\n signalingState => stable" [discord] "%c[RTCConnection(1011042269245222972)] \nfont-weight: bold;\ncolor: purple;\n Remote media sink wants: {\"any\":100}" [discord] "updateVideoQuality: {\n \"remoteSinkWantsPixelCount\": 0,\n \"encodingVideoMinBitRate\": 500000,\n \"encodingVideoMaxBitRate\": 4000000,\n \"encodingVideoBitRate\": 600000,\n \"streamParameters\": [\n {\n \"type\": \"video\",\n \"active\": true,\n \"rid\": \"100\",\n \"ssrc\": 2214349423,\n \"rtxSsrc\": 2247504202,\n \"quality\": 100,\n \"maxBitrate\": 4000000,\n \"maxFrameRate\": 30,\n \"maxResolution\": {\n \"type\": \"fixed\",\n \"width\": 1280,\n \"height\": 720\n }\n }\n ]\n}" [discord] "BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 4000000, localWant: 100" [discord] "BaseWebRTCConnection.updateVideoQuality: old: 1280 x 720, new: undefined x undefined" [virtmic] Added: discord-screenaudio [virtmic] Added: discord-screenaudio
I have the same issue with EasyEffects, I need to manually use Helvum to get the audio to work.
Feature request:
As an EasyEffects user I'd like to have the mic and desktop audio sources in distinct names, so that I can add the virtmic from the exceptions list in EasyEffects and don't worry have to manually reselect the correct source for the virtmic stream.
Following picture shows both sources with the same name. I cannot add just one to the exceptions list, because the both names are identical and cannot be differentiated from another. When sharing screen I'd have to always manually disable the correct source from EasyEffects or manually select the correct source on Pavucontrol or Helvum like mentioned above.
@Snaggly that would be nice to have, but I don't know if there is any way to change the name of the input. The input is created through Chromium, so everything is heavily sandboxed and you can't really configure that much.
how do you get it to work with helvum?
Sorry to necro an old thread, but I just wrote a guide on how to make EasyEffects work with discord-screenaudio with the help of Helvum. Here it is: https://gist.github.com/amsyarzero/57ff8e566af48265950aead5ff900ce5
this is exactly what I was looking for, thank you!
wait, this is still an issue. he just posted a workaround, not a permanent fix