maltejur / discord-screenaudio

A custom discord client that supports streaming with audio on Linux.
1.1k stars 35 forks source link

Very low framerate #163

Open Like4Schnitzel opened 1 year ago

Like4Schnitzel commented 1 year ago

Running the Flatpak version on KDE Plasma I get very low framerates when sharing windows, whereas in the regular app it's fine with the same quality settings. There, what significantly increased the quality, was turning off OpenH264 Video Codec in the video codec settings, but those appear to be missing here.

Growebis commented 1 year ago

This is also happening to me on the compiled version as my friend reports the screensharing to be a slideshow.

Like4Schnitzel commented 1 year ago

Interestingly this has fixed itself for me. The quality is now reportedly smooth. I am unsure what caused this, but my best guess is that it was me updating my OS, PikaOS, to 23.04. Here's the changelog, perhaps it's possible to narrow it down to the cause:

I don't have an Nvidia card and didn't install the update through an ISO, so that should rule out some of these.

Like4Schnitzel commented 1 year ago

I didn't mean to close the issue. My bad.

maltejur commented 1 year ago

Fixed xwayland rendering on the CPU instead of GPU when on Nvidia.

Sounds the most relevant

disobeyedtoast commented 1 year ago

Fixed xwayland rendering on the CPU instead of GPU when on Nvidia.

Sounds the most relevant

Unfortunately I doubt this is the issue, as I am running on X11 and an AMD system and still encounter the same stuttering effect.

Kyr4l commented 1 year ago

same issue with AMD GPU on Wayland

nmlynch94 commented 1 year ago

Nvidia GPU on x11 seeing this as well.

Lolotronop commented 1 year ago

Nvidia GPU on Gnome Wayland on up to date Arch. Tried streaming a web browser (gnome Web and Firefox in this case) from PC to a laptop. Frame rate drops dramatically in dynamic scenes, but is fine on slow movement. Streaming gnome Web from Firefox does not lag nearly as hard or as often as streaming it from discord-screenaudio, but still drops some frames on 180 turns and huge in-game effects (tested on some Risk of Rain 2 footage on youtube). If somebody uses chrome here would be great if you could test it as well, maybe I'll get around to it tomorrow, but the issue seems to be exclusive to discord-screenaudio atm

Lolotronop commented 1 year ago

Same setup, tested streaming from Brave, as bad or worse than discord-screenaudio

lou-perret commented 1 year ago

Hello ! Same issue here, 7900 XTX with Wayland. Very, very bad framerate

On the official Discord app, I get nice framerate if I disable OpenH264, but I can't do that here :(

jaykstah commented 1 year ago

Chromium/Electron on Linux cannot do hardware video encoding at the moment, screen sharing will use software encoding on alternative clients like this. That's why the framerate is choppy from discord-screenaudio or from web browsers. Nothing the developers of this client can really do about it until a new version of Electron with this capability is made available.

Kyr4l commented 1 year ago

Chromium/Electron on Linux cannot do hardware video encoding at the moment, screen sharing will use software encoding on alternative clients like this. That's why the framerate is choppy from discord-screenaudio or from web browsers. Nothing the developers of this client can really do about it until a new version of Electron with this capability is made available.

wtf i hate electron even more now

Lolotronop commented 1 year ago

Chromium/Electron on Linux

While QTWebEngine might use Chromium (which I don't think it does), discord-screenaudio definitely does not use Electron With this out of the way, software encoding does not necessarily mean choppy video. With a mid range cpu you can stream with software encoding from OBS for example with much higher bitrate than what Discord has and still have a perfectly smooth image, OR use the official client and have perfectly fine framerate with OpenH264 (which I assume is the hardware video encoder-decoder) disabled as noted above by lou-perret. This is clearly a bug, but not a bug discord-screenaudio can fix unfortunately, since even Brave has the same problem (at least it had a month ago)

brndd commented 1 year ago

I have an i9 12900k which should be more than capable of software encoding 720p 30fps video, so it's weird that my streams apparently still have bad framerate.

Yoss101 commented 1 year ago

Same issue

System: Kernel: 6.5.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1 clocksource: tsc available: acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=8b00347f-fa88-4c60-af97-c1e91871aa03 rw rootflags=subvol=@ quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3 ibt=off Desktop: KDE Plasma v: 5.27.8 tk: Qt v: 5.15.10 wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda Linux base: Arch Linux Machine: Type: Laptop System: Alienware product: Alienware x17 R1 v: 1.19.0 serial: Chassis: type: 10 serial: Mobo: Alienware model: Alienware x17 R1 v: A00 serial: UEFI: Alienware v: 1.19.0 date: 07/03/2023 Battery: ID-1: BAT1 charge: 87.0 Wh (100.0%) condition: 87.0/87.0 Wh (100.0%) volts: 12.0 min: 11.4 model: COMPAL PABAS0241231 type: Li-ion serial: status: full CPU: Info: model: 11th Gen Intel Core i7-11800H bits: 64 type: MT MCP arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020 process: Intel 10nm family: 6 model-id: 0x8D (141) stepping: 1 microcode: 0x46 Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache: L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 10 MiB desc: 8x1.2 MiB L3: 24 MiB desc: 1x24 MiB Speed (MHz): avg: 2394 high: 4486 min/max: 800/4600 scaling: driver: intel_pstate governor: powersave cores: 1: 2215 2: 3161 3: 3215 4: 1461 5: 3981 6: 1203 7: 952 8: 3471 9: 1445 10: 4486 11: 2512 12: 4001 13: 1211 14: 2669 15: 1526 16: 800 bogomips: 73728 Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx Vulnerabilities: Graphics: Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: Dell driver: i915 v: kernel arch: Gen-12.1 process: Intel 10nm built: 2020-21 ports: active: none empty: DP-1, DP-2, DP-3, DP-4, DP-5, HDMI-A-1 bus-ID: 0000:00:02.0 chip-ID: 8086:9a60 class-ID: 0300 Device-2: NVIDIA GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] vendor: Dell driver: nvidia v: 535.113.01 alternate: nouveau,nvidia_drm non-free: 535.xx+ status: current (as of 2023-09) arch: Ampere code: GAxxx process: TSMC n7 (7nm) built: 2020-23 bus-ID: 0000:01:00.0 chip-ID: 10de:24dc class-ID: 0300 Device-3: Logitech C922 Pro Stream Webcam driver: snd-usb-audio,uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-3.4:11 chip-ID: 046d:085c class-ID: 0102 serial: Device-4: Sunplus Innovation Integrated_Webcam_HD driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-7:7 chip-ID: 1bcf:2b9e class-ID: 0e02 serial: Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.2.1 compositor: kwin_x11 driver: X: loaded: modesetting,nouveau,nvidia alternate: fbdev,intel,nv,vesa dri: iris gpu: i915,nvidia display-ID: :0 screens: 1 Screen-1: 0 s-res: 4480x1607 s-dpi: 124 s-size: 917x329mm (36.10x12.95") s-diag: 974mm (38.36") Monitor-1: DP-2 pos: primary,top-left res: 2560x1440 hz: 144 dpi: 109 size: 597x336mm (23.5x13.23") diag: 685mm (26.97") modes: N/A Monitor-2: DP-4 pos: bottom-r res: 1920x1080 dpi: 128 size: 380x220mm (14.96x8.66") diag: 439mm (17.29") modes: N/A Monitor-3: None-2-1 size-res: N/A modes: N/A API: EGL v: 1.5 hw: drv: intel iris drv: nvidia platforms: device: 0 drv: nvidia device: 1 drv: iris device: 3 drv: swrast gbm: drv: kms_swrast surfaceless: drv: nvidia x11: drv: nvidia inactive: wayland,device-2 API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 535.113.01 glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 3080 Laptop GPU/PCIe/SSE2 memory: 15.62 GiB API: Vulkan v: 1.3.264 layers: 14 device: 0 type: discrete-gpu name: NVIDIA GeForce RTX 3080 Laptop GPU driver: nvidia v: 535.113.01 device-ID: 10de:24dc surfaces: xcb,xlib device: 1 type: integrated-gpu name: Intel UHD Graphics (TGL GT1) driver: mesa intel v: 23.1.8-arch1.1 device-ID: 8086:9a60 surfaces: xcb,xlib device: 2 type: cpu name: llvmpipe (LLVM 16.0.6 256 bits) driver: mesa llvmpipe v: 23.1.8-arch1.1 (LLVM 16.0.6) device-ID: 10005:0000 surfaces: xcb,xlib Audio: Device-1: Intel Tiger Lake-H HD Audio vendor: Dell driver: sof-audio-pci-intel-tgl alternate: snd_hda_intel,snd_sof_pci_intel_tgl bus-ID: 0000:00:1f.3 chip-ID: 8086:43c8 class-ID: 0401 Device-2: NVIDIA GA104 High Definition Audio driver: snd_hda_intel v: kernel bus-ID: 0000:01:00.1 chip-ID: 10de:228b class-ID: 0403 Device-3: Creative Sound Blaster GC7 driver: cdc_acm,hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-3.1:4 chip-ID: 041e:3271 class-ID: 0102 serial: Device-4: Logitech C922 Pro Stream Webcam driver: snd-usb-audio,uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-3.4:11 chip-ID: 046d:085c class-ID: 0102 serial: Device-5: Kingston HyperX QuadCast S driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-6.4:9 chip-ID: 0951:171d class-ID: 0300 serial: API: ALSA v: k6.5.5-zen1-1-zen status: kernel-api with: aoss type: oss-emulator tools: N/A Server-1: PipeWire v: 0.3.80 status: active with: 1: pipewire-pulse status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl Network: Device-1: Realtek Killer E3000 2.5GbE vendor: Dell driver: r8169 v: kernel port: 3000 bus-ID: 0000:3b:00.0 chip-ID: 10ec:3000 class-ID: 0200 IF: enp59s0 state: down mac: Device-2: Intel Wi-Fi 6 AX210/AX211/AX411 160MHz vendor: Rivet Networks driver: iwlwifi v: kernel bus-ID: 0000:3c:00.0 chip-ID: 8086:2725 class-ID: 0280 IF: wlp60s0 state: up mac: Bluetooth: Device-1: Intel AX210 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-14:12 chip-ID: 8087:0032 class-ID: e001 Report: btmgmt ID: hci0 rfk-id: 1 state: up address: bt-v: 5.3 lmp-v: 12 status: discoverable: no pairing: no class-ID: 7c010c RAID: Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd v: 0.6 port: N/A bus-ID: 0000:00:0e.0 chip-ID: 8086:9a0b rev: class-ID: 0104 Drives: Local Storage: total: 1.86 TiB used: 516.48 GiB (27.1%) SMART Message: Unable to run smartctl. Root privileges required. ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Micron model: 3400 NVMe 2048GB size: 1.86 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: fw-rev: 34000060 temp: 57.9 C scheme: GPT Partition: ID-1: / raw-size: 1.37 TiB size: 1.37 TiB (100.00%) used: 516.41 GiB (36.7%) fs: btrfs dev: /dev/nvme0n1p5 maj-min: 259:5 ID-2: /boot/efi raw-size: 200 MiB size: 196 MiB (98.00%) used: 75.8 MiB (38.6%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 ID-3: /home raw-size: 1.37 TiB size: 1.37 TiB (100.00%) used: 516.41 GiB (36.7%) fs: btrfs dev: /dev/nvme0n1p5 maj-min: 259:5 ID-4: /var/log raw-size: 1.37 TiB size: 1.37 TiB (100.00%) used: 516.41 GiB (36.7%) fs: btrfs dev: /dev/nvme0n1p5 maj-min: 259:5 ID-5: /var/tmp raw-size: 1.37 TiB size: 1.37 TiB (100.00%) used: 516.41 GiB (36.7%) fs: btrfs dev: /dev/nvme0n1p5 maj-min: 259:5 Swap: Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no ID-1: swap-1 type: zram size: 31.01 GiB used: 680 MiB (2.1%) priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 16 dev: /dev/zram0 Sensors: System Temperatures: cpu: N/A mobo: N/A gpu: nvidia temp: 47 C Fan Speeds (rpm): N/A Info: Processes: 391 Uptime: 5h 53m wakeups: 3 Memory: total: 32 GiB note: est. available: 31.01 GiB used: 7.56 GiB (24.4%) Init: systemd v: 254 default: graphical tool: systemctl Compilers: gcc: 13.2.1 Packages: pm: pacman pkgs: 1876 libs: 532 tools: octopi,paru Shell: fish v: 3.6.1 default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.30 Garuda (2.6.16-1): System install date: 2023-09-20 Last full system update: 2023-09-29 ↻ Is partially upgraded: No Relevant software: snapper NetworkManager dracut nvidia-dkms Windows dual boot: Probably (Run as root to verify) Failed units:

CorneliusCornbread commented 6 months ago

I'm getting this issue on Fedora KDE 39, running the app through the terminal I get a lot of

[OpenH264] this = 0x0x7fb8100c4d90, Warning:[Rc] iDid = 0,iContinualSkipFrames(147) is large