Skip to content

Spotube Blinking in Browser #10

Description

@BaguetesHM

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hi morning, deployed a Spotube docker container in an linux minipc with intel graphics and in browser it does not spot blinking but still is working, can you help? Thanks.

Expected Behavior

Without blinking

Steps To Reproduce

Cant say what to write here.

Environment

OS Xubuntu, docker instaled in command line some months ago

CPU architecture

x86-64

Docker creation

Via yaml file in github:

---
services:
  spotube:
    image: lscr.io/linuxserver/spotube:latest
    container_name: spotube
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Lisbon
    volumes:
      - /spotube/config:/config
    ports:
      - 3000:3000
      - 3001:3001
    shm_size: "1gb"
    restart: unless-stopped

Container logs

INFO:data_websocket:Defining logical monitors for the window manager...
INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
INFO:data_websocket:Client 'primary' is active. Starting its capture.
INFO:data_websocket:Preparing to start capture for display='primary': Res=1714x892, Offset=0x0
INFO:data_websocket:Video chunk sender started for display 'primary'.
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:New frame backpressure task started for display 'primary'.
INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1714, "height": 892}
INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]}
INFO:data_websocket:Display reconfiguration finished successfully.
INFO:data_websocket:Reconfiguration process complete (state unlocked).
X Shared Memory Extension available.
XShm setup complete for 1714x892.
CPU cores available: 4
Stream settings active -> Res: 1714x892 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.
INFO:data_websocket:Stopping all streams for display 'primary'...
INFO:data_websocket:Backpressure logic task for 'primary' cancelled.
INFO:data_websocket:Backpressure logic task for 'primary' finished.
INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.
INFO:data_websocket:Resetting frame IDs for display 'primary'.
INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary
Capture loop stopped. X resources released.
INFO:data_websocket:Successfully stopped all streams for display 'primary'.
INFO:data_websocket:Video chunk sender for 'primary' cancelled.
INFO:data_websocket:Video chunk sender for 'primary' finished.
INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.
INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1714, 'h': 892}
INFO:data_websocket:Preparing to start capture for display='primary': Res=1714x892, Offset=0x0
INFO:data_websocket:Video chunk sender started for display 'primary'.
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:New frame backpressure task started for display 'primary'.
INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
X Shared Memory Extension available.
XShm setup complete for 1714x892.
CPU cores available: 4
Stream settings active -> Res: 1714x892 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
INFO:webrtc_input:Set clipboard content, length: 26
INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.
INFO:data_websocket:Stopping all streams for display 'primary'...
INFO:data_websocket:Backpressure logic task for 'primary' cancelled.
INFO:data_websocket:Backpressure logic task for 'primary' finished.
INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.
INFO:data_websocket:Resetting frame IDs for display 'primary'.
INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary
Capture loop stopped. X resources released.
INFO:data_websocket:Successfully stopped all streams for display 'primary'.
INFO:data_websocket:Video chunk sender for 'primary' cancelled.
INFO:data_websocket:Video chunk sender for 'primary' finished.
INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.
INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1714, 'h': 892}
INFO:data_websocket:Preparing to start capture for display='primary': Res=1714x892, Offset=0x0
INFO:data_websocket:Video chunk sender started for display 'primary'.
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:New frame backpressure task started for display 'primary'.
INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
X Shared Memory Extension available.
XShm setup complete for 1714x892.
CPU cores available: 4
Stream settings active -> Res: 1714x892 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
INFO:webrtc_input:Set clipboard content, length: 157
INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.
INFO:data_websocket:Stopping all streams for display 'primary'...
INFO:data_websocket:Backpressure logic task for 'primary' cancelled.
INFO:data_websocket:Backpressure logic task for 'primary' finished.
INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.
INFO:data_websocket:Resetting frame IDs for display 'primary'.
INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary
Capture loop stopped. X resources released.
INFO:data_websocket:Successfully stopped all streams for display 'primary'.
INFO:data_websocket:Video chunk sender for 'primary' cancelled.
INFO:data_websocket:Video chunk sender for 'primary' finished.
INFO:data_websocket:Received START_VIDEO for 'primary'. Starting its stream.
INFO:data_websocket:Found existing layout for 'primary'. Starting capture with: {'x': 0, 'y': 0, 'w': 1714, 'h': 892}
INFO:data_websocket:Preparing to start capture for display='primary': Res=1714x892, Offset=0x0
INFO:data_websocket:Video chunk sender started for display 'primary'.
X Shared Memory Extension available.
XShm setup complete for 1714x892.
CPU cores available: 4
Stream settings active -> Res: 1714x892 | FPS: 60.0 | Stripes: 1 | Mode: H264 (CPU) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:New frame backpressure task started for display 'primary'.
INFO:data_websocket:Frame-based backpressure logic task started for display 'primary'.
INFO:data_websocket:Client settings received, proceeding with backpressure loop for 'primary'.
INFO:webrtc_input:Set clipboard content, length: 361
INFO:data_websocket:Received STOP_VIDEO for 'primary'. Stopping stream.
INFO:data_websocket:Stopping all streams for display 'primary'...
INFO:data_websocket:Backpressure logic task for 'primary' cancelled.
INFO:data_websocket:Backpressure logic task for 'primary' finished.
INFO:data_websocket:Backpressure task for 'primary' was stopped. Resetting its frame IDs.
INFO:data_websocket:Resetting frame IDs for display 'primary'.
INFO:data_websocket:Broadcasting primary pipeline reset to all 1 clients: PIPELINE_RESETTING primary
Capture loop stopped. X resources released.
INFO:data_websocket:Successfully stopped all streams for display 'primary'.
INFO:data_websocket:Video chunk sender for 'primary' cancelled.
INFO:data_websocket:Video chunk sender for 'primary' finished.

Activity

  1. github-actions commented on Feb 4, 2026

    @github-actions

    Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

  2. self-assigned this
    on Feb 4, 2026
  3. thelamer commented on Feb 4, 2026

    @thelamer
    Member

    I have seen this as well just forgot to create issue.
    It does seem to calm down after you get past initial settings.

  4. BaguetesHM commented on Feb 4, 2026

    @BaguetesHM
    Author

    Well is something with GUI and Docker but I could not run the permissions in docker cause dont know the correct sintax to run it, as in here: "Modern GUI desktop apps may have compatibility issues with the latest Docker syscall restrictions. You can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls on hosts with older Kernels or libseccomp versions." Link: https://github.com/linuxserver/docker-spotube

  5. thelamer commented on Sep 26, 2026

    @thelamer
    Member

    It is what happens without a GPU it seems to be upstream as they expect the underlying host will have a GPU. When you pass a gpu to the image you get no flicker. It is less pronounced on wayland with pixman vs X11 but still there.

    I do not think there is anything I can do about this honestly, just the framework they use and a hole in testing that is understandable as software rendering of a desktop application is just something that does not happen anymore outside of stuff like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions