Skip to content

[Enhancement] Test client CPU and GPU consumption through MediaStreamTrackProcessor #47

@ehfd

Description

@ehfd

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

  • Client browser CPU and GPU consumption is still pretty high compared to the original Selkies (but much lower than KasmVNC), likely due to the addition of <canvas> instead of solely using <video> when it can use the latter only - use <canvas> only with stripe encode mode. High 3D rasterization utilization from the GPU along with CPU spikes, not video decode. The spikes are NOT in the striped encode mode, they are in NVENC and x264enc modes.
  • The usage of OffscreenCanvas in the polyfill https://jan-ivar.github.io/polyfills/mediastreamtrackprocessor.js is very interesting as well.
  • Audio should stay in AudioWorkletNode.

Expected Behavior

No response

Steps To Reproduce

Reproduce in a power-efficient laptop that has power constraints.

Environment

Ubuntu 24.04

Docker creation

git clone https://github.com/selkies-project/selkies.git
cd selkies
git checkout -f main
docker run --rm -it \
  --shm-size=1gb \
  -e DEV_MODE=selkies-dashboard \
  -e PUID=1000 \
  -e PGID=1000 \
  -v $(pwd):/config/src \
  -p 3000:3000 \
  -p 3001:3001 linuxserver/webtop:debian-xfce bash

Container logs

N/A.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions