The new Selkies images aren't reliable for me. Interactions are lagged, and clicks don't seem to be registering 100% of the time.
I'm using the latest image as of today, but I tried a few earlier ones. Migrating back to 8.6 with Kasm is flawless.
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 1026
User GID: 100
───────────────────────────────────────
Linuxserver.io version: v8.7.0-ls345
Build-date: 2025-07-27T16:57:15+00:00
───────────────────────────────────────
[custom-init] No custom files found, skipping...
[ls.io-init] done.
19
20
INFO:data_websocket:pcmflux library found. Audio capture is available.
INFO:data_websocket:pixelflux library found. Striped encoding modes available.
Traceback (most recent call last):
File "/usr/local/bin/selkies", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/local/lib/python3.12/dist-packages/selkies/__main__.py", line 15, in main
from .selkies import ws_entrypoint
File "/usr/local/lib/python3.12/dist-packages/selkies/selkies.py", line 96, in <module>
from .input_handler import WebRTCInput as InputHandler, SelkiesGamepad, GamepadMapper
File "/usr/local/lib/python3.12/dist-packages/selkies/input_handler.py", line 33, in <module>
import pynput
File "/usr/local/lib/python3.12/dist-packages/pynput/__init__.py", line 40, in <module>
from . import keyboard
File "/usr/local/lib/python3.12/dist-packages/pynput/keyboard/__init__.py", line 31, in <module>
backend = backend(__name__)
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/dist-packages/pynput/_util/__init__.py", line 78, in backend
raise ImportError('this platform is not supported: {}'.format(
ImportError: this platform is not supported: ('failed to acquire X connection: Can\'t connect to display ":1": [Errno 111] Connection refused', DisplayConnectionError(':1', '[Errno 111] Connection refused'))
Try one of the following resolutions:
* Please make sure that you have an X server running, and that the DISPLAY environment variable is set correctly
INFO:data_websocket:pcmflux library found. Audio capture is available.
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
screen 0 shmid 0
INFO:data_websocket:pixelflux library found. Striped encoding modes available.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Could not resolve keysym XF86CameraAccessEnable
> Warning: Could not resolve keysym XF86CameraAccessDisable
> Warning: Could not resolve keysym XF86CameraAccessToggle
> Warning: Could not resolve keysym XF86NextElement
> Warning: Could not resolve keysym XF86PreviousElement
> Warning: Could not resolve keysym XF86AutopilotEngageToggle
> Warning: Could not resolve keysym XF86MarkWaypoint
> Warning: Could not resolve keysym XF86Sos
> Warning: Could not resolve keysym XF86NavChart
> Warning: Could not resolve keysym XF86FishingChart
> Warning: Could not resolve keysym XF86SingleRangeRadar
> Warning: Could not resolve keysym XF86DualRangeRadar
> Warning: Could not resolve keysym XF86RadarOverlay
> Warning: Could not resolve keysym XF86TraditionalSonar
> Warning: Could not resolve keysym XF86ClearvuSonar
> Warning: Could not resolve keysym XF86SidevuSonar
> Warning: Could not resolve keysym XF86NavInfo
Errors from xkbcomp are not fatal to the X server
INFO:root:Expected C js_config_t size (from ctypes): 1354 bytes
INFO:main:Upload directory ensured: /config/Desktop
INFO:main:Starting Selkies (WebSocket Mode) with args: Namespace(encoder='x264enc', framerate=60, video_bitrate=16000, dri_node='', audio_device_name='', h264_crf=25, h264_fullcolor=False, h264_streaming_mode=False, watermark_path='', watermark_location=-1, debug=False)
INFO:main:Initial Encoder: x264enc, Framerate: 60, Bitrate: 16000kbps
INFO:main:SelkiesStreamingApp initialized: encoder=x264enc, display=1024x768
INFO:main:All main components initialized. Running server...
INFO:webrtc_input:Resetting keyboard modifiers.
INFO:webrtc_input:Starting clipboard monitor
INFO:webrtc_input:Found XFIXES version 4.0
INFO:webrtc_input:starting cursor monitor
INFO:webrtc_input:watching for cursor changes
WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready.
INFO:data_websocket:Data WebSocket Server listening on port 8082
INFO:webrtc_input:Initializing 4 persistent gamepad instances...
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js0): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js0.sock, EVDEV socket: /tmp/selkies_event1000.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 0 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js0.sock, EVDEV: /tmp/selkies_event1000.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js1): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js1.sock, EVDEV socket: /tmp/selkies_event1001.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 1 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js1.sock, EVDEV: /tmp/selkies_event1001.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js2): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js2.sock, EVDEV socket: /tmp/selkies_event1002.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 2 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js2.sock, EVDEV: /tmp/selkies_event1002.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js3): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js3.sock, EVDEV socket: /tmp/selkies_event1003.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 3 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js3.sock, EVDEV: /tmp/selkies_event1003.sock).
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock
WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready.
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57152)
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768}
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57152)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328}
INFO:gst_app_resize:on_resize_handler attempting resize for: 2704x1328
INFO:gst_app_resize:App dimensions updated to 2704x1328 before xrandr call.
INFO:gst_app_resize:Mode 2704x1328 not found in xrandr list. Attempting to add for screen 'screen'.
INFO:gst_app_resize:Successfully ran: xrandr --newmode 2704x1328 302.50 2704 2896 3184 3664 1328 1331 1341 1377 -hsync +vsync
INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 2704x1328
INFO:gst_app_resize:Applying xrandr mode '2704x1328' for screen 'screen'.
INFO:gst_app_resize:Successfully applied xrandr mode '2704x1328'.
INFO:gst_app_resize:resize_display('2704x1328') reported success.
INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings.
INFO:data_websocket:Initial client settings message processed by ws_handler.
WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change.
INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328}
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
WARNING:webrtc_input:No clipboard content to send
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True
INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
INFO:data_websocket:x264enc capture started successfully.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
INFO:data_websocket:Frame-based backpressure logic task started.
INFO:data_websocket:Client settings received, proceeding with backpressure loop.
INFO:webrtc_input:Set clipboard content, length: 438
INFO:webrtc_input:Sending clipboard content, length: 438
[pcmflux] Attempting to connect to PulseAudio device: system_default...
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created.
[pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes
X Shared Memory Extension available.
XShm setup complete for 2704x1328.
CPU cores available: 4
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] First non-silent audio chunk detected! Encoding...
[pcmflux] Status | Read: 1, Silent: 0 (0.0%), Encoded: 1, Rate: 0.01 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 57152)...
INFO:data_websocket:Last client (('127.0.0.1', 57152)) disconnected. Cancelling frame backpressure task.
Capture loop stopped. X resources released.
[pcmflux] Attempting to connect to PulseAudio device: system_default...
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created.
[pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes
X Shared Memory Extension available.
XShm setup complete for 2704x1328.
CPU cores available: 4
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] First non-silent audio chunk detected! Encoding...
INFO:data_websocket:No other clients in set after ('127.0.0.1', 57152) disconnected. Marking pipelines for stop.
INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 57152)).
INFO:main:Initiating unified pipeline shutdown...
INFO:main:Queueing x264-striped capture stop.
INFO:main:Queueing pcmflux audio capture stop.
INFO:main:Waiting for 2 capture module(s) to stop...
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57158)
[pcmflux] Stop requested. Cleaning up capture loop...
[pcmflux] Audio capture loop finished. Resources released.
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328}
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57158)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 2704, 'manualHeight': 1328, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328}
INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings.
INFO:data_websocket:Initial client settings message processed by ws_handler.
WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change.
INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True
INFO:data_websocket:Frame-based backpressure logic task cancelled.
INFO:data_websocket:Frame-based backpressure logic task finished.
INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
INFO:data_websocket:Resetting frame IDs.
INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).
INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
INFO:data_websocket:x264enc capture started successfully.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
INFO:data_websocket:Frame-based backpressure logic task started.
INFO:data_websocket:Client settings received, proceeding with backpressure loop.
INFO:main:All C++ capture modules have stopped.
INFO:data_websocket:Frame-based backpressure logic task cancelled.
INFO:data_websocket:Frame-based backpressure logic task finished.
INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
INFO:data_websocket:Resetting frame IDs.
INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).
INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled.
INFO:data_websocket:pcmflux audio chunk broadcasting task finished.
INFO:main:Unified pipeline shutdown complete.
INFO:data_websocket:Data WS handler for ('127.0.0.1', 57152) finished all cleanup.
INFO:data_websocket:Stats sender: WS connection closed.
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 18, Silent: 0 (0.0%), Encoded: 18, Rate: 0.14 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
INFO:webrtc_input:Set clipboard content, length: 438
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
INFO:webrtc_input:Set clipboard content, length: 438
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
[pcmflux] Stop requested. Cleaning up capture loop...
[pcmflux] Audio capture loop finished. Resources released.
Capture loop stopped. X resources released.
INFO:data_websocket:Received STOP_VIDEO
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:x264enc pipeline is already capturing.
INFO:webrtc_input:Set clipboard content, length: 438
INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 57158)...
INFO:data_websocket:No other clients in set after ('127.0.0.1', 57158) disconnected. Marking pipelines for stop.
INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 57158)).
INFO:main:Initiating unified pipeline shutdown...
INFO:main:Unified pipeline shutdown complete.
INFO:data_websocket:Data WS handler for ('127.0.0.1', 57158) finished all cleanup.
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57170)
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328}
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57170)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
[pcmflux] Attempting to connect to PulseAudio device: system_default...
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 2704, 'manualHeight': 1328, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328}
INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings.
INFO:data_websocket:Initial client settings message processed by ws_handler.
WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change.
INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True
INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
INFO:data_websocket:x264enc capture started successfully.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
INFO:data_websocket:Frame-based backpressure logic task started.
INFO:data_websocket:Client settings received, proceeding with backpressure loop.
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created.
[pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes
X Shared Memory Extension available.
XShm setup complete for 2704x1328.
CPU cores available: 4
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] First non-silent audio chunk detected! Encoding...
[pcmflux] Status | Read: 1, Silent: 0 (0.0%), Encoded: 1, Rate: 0.01 kbps
INFO:data_websocket:Stats sender: WS connection closed.
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 6.00 EncStripes/s: 6.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00
[pcmflux] Status | Read: 18, Silent: 0 (0.0%), Encoded: 18, Rate: 0.22 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 5.00 EncStripes/s: 5.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 4.00 EncStripes/s: 4.00
[pcmflux] Status | Read: 99, Silent: 0 (0.0%), Encoded: 99, Rate: 1.19 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 8.00 EncStripes/s: 8.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 7.00 EncStripes/s: 7.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 3.00 EncStripes/s: 3.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
[pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps
Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00
Is there an existing issue for this?
Current Behavior
The new Selkies images aren't reliable for me. Interactions are lagged, and clicks don't seem to be registering 100% of the time.
I'm using the latest image as of today, but I tried a few earlier ones. Migrating back to 8.6 with Kasm is flawless.
Expected Behavior
Steps To Reproduce
This workflow is reproducible for me in both Chrome and Safari:
Environment
CPU architecture
x86-64
Docker creation
--- version: "2.1" services: calibre: image: lscr.io/linuxserver/calibre container_name: calibre environment: - PUID=1026 - PGID=100 - TZ=Europe/London - PASSWORD=calibre - CLI_ARGS= volumes: - /volume1/homes/stbenjam/Drive/Calibre Library:/config - /volume1/homes/stbenjam/Drive/Calibre Imports:/import ports: - 8452:8080 - 8453:8181 restart: unless-stoppedContainer logs
[migrations] started [migrations] no migrations found ─────────────────────────────────────── ██╗ ███████╗██╗ ██████╗ ██║ ██╔════╝██║██╔═══██╗ ██║ ███████╗██║██║ ██║ ██║ ╚════██║██║██║ ██║ ███████╗███████║██║╚██████╔╝ ╚══════╝╚══════╝╚═╝ ╚═════╝ Brought to you by linuxserver.io ─────────────────────────────────────── To support LSIO projects visit: https://www.linuxserver.io/donate/ ─────────────────────────────────────── GID/UID ─────────────────────────────────────── User UID: 1026 User GID: 100 ─────────────────────────────────────── Linuxserver.io version: v8.7.0-ls345 Build-date: 2025-07-27T16:57:15+00:00 ─────────────────────────────────────── [custom-init] No custom files found, skipping... [ls.io-init] done. 19 20 INFO:data_websocket:pcmflux library found. Audio capture is available. INFO:data_websocket:pixelflux library found. Striped encoding modes available. Traceback (most recent call last): File "/usr/local/bin/selkies", line 8, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.12/dist-packages/selkies/__main__.py", line 15, in main from .selkies import ws_entrypoint File "/usr/local/lib/python3.12/dist-packages/selkies/selkies.py", line 96, in <module> from .input_handler import WebRTCInput as InputHandler, SelkiesGamepad, GamepadMapper File "/usr/local/lib/python3.12/dist-packages/selkies/input_handler.py", line 33, in <module> import pynput File "/usr/local/lib/python3.12/dist-packages/pynput/__init__.py", line 40, in <module> from . import keyboard File "/usr/local/lib/python3.12/dist-packages/pynput/keyboard/__init__.py", line 31, in <module> backend = backend(__name__) ^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/pynput/_util/__init__.py", line 78, in backend raise ImportError('this platform is not supported: {}'.format( ImportError: this platform is not supported: ('failed to acquire X connection: Can\'t connect to display ":1": [Errno 111] Connection refused', DisplayConnectionError(':1', '[Errno 111] Connection refused')) Try one of the following resolutions: * Please make sure that you have an X server running, and that the DISPLAY environment variable is set correctly INFO:data_websocket:pcmflux library found. Audio capture is available. _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created. screen 0 shmid 0 INFO:data_websocket:pixelflux library found. Striped encoding modes available. The XKEYBOARD keymap compiler (xkbcomp) reports: > Warning: Could not resolve keysym XF86CameraAccessEnable > Warning: Could not resolve keysym XF86CameraAccessDisable > Warning: Could not resolve keysym XF86CameraAccessToggle > Warning: Could not resolve keysym XF86NextElement > Warning: Could not resolve keysym XF86PreviousElement > Warning: Could not resolve keysym XF86AutopilotEngageToggle > Warning: Could not resolve keysym XF86MarkWaypoint > Warning: Could not resolve keysym XF86Sos > Warning: Could not resolve keysym XF86NavChart > Warning: Could not resolve keysym XF86FishingChart > Warning: Could not resolve keysym XF86SingleRangeRadar > Warning: Could not resolve keysym XF86DualRangeRadar > Warning: Could not resolve keysym XF86RadarOverlay > Warning: Could not resolve keysym XF86TraditionalSonar > Warning: Could not resolve keysym XF86ClearvuSonar > Warning: Could not resolve keysym XF86SidevuSonar > Warning: Could not resolve keysym XF86NavInfo Errors from xkbcomp are not fatal to the X server INFO:root:Expected C js_config_t size (from ctypes): 1354 bytes INFO:main:Upload directory ensured: /config/Desktop INFO:main:Starting Selkies (WebSocket Mode) with args: Namespace(encoder='x264enc', framerate=60, video_bitrate=16000, dri_node='', audio_device_name='', h264_crf=25, h264_fullcolor=False, h264_streaming_mode=False, watermark_path='', watermark_location=-1, debug=False) INFO:main:Initial Encoder: x264enc, Framerate: 60, Bitrate: 16000kbps INFO:main:SelkiesStreamingApp initialized: encoder=x264enc, display=1024x768 INFO:main:All main components initialized. Running server... INFO:webrtc_input:Resetting keyboard modifiers. INFO:webrtc_input:Starting clipboard monitor INFO:webrtc_input:Found XFIXES version 4.0 INFO:webrtc_input:starting cursor monitor INFO:webrtc_input:watching for cursor changes WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready. INFO:data_websocket:Data WebSocket Server listening on port 8082 INFO:webrtc_input:Initializing 4 persistent gamepad instances... INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js0): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js0.sock, EVDEV socket: /tmp/selkies_event1000.sock. Using fixed config: Microsoft X-Box 360 pad INFO:webrtc_input:Initialized and started persistent gamepad instance for index 0 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js0.sock, EVDEV: /tmp/selkies_event1000.sock). INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js1): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js1.sock, EVDEV socket: /tmp/selkies_event1001.sock. Using fixed config: Microsoft X-Box 360 pad INFO:webrtc_input:Initialized and started persistent gamepad instance for index 1 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js1.sock, EVDEV: /tmp/selkies_event1001.sock). INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js2): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js2.sock, EVDEV socket: /tmp/selkies_event1002.sock. Using fixed config: Microsoft X-Box 360 pad INFO:webrtc_input:Initialized and started persistent gamepad instance for index 2 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js2.sock, EVDEV: /tmp/selkies_event1002.sock). INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js3): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=11 (Array capacity: 512), Reported Axes=8 (Array capacity: 64) INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js3.sock, EVDEV socket: /tmp/selkies_event1003.sock. Using fixed config: Microsoft X-Box 360 pad INFO:webrtc_input:Initialized and started persistent gamepad instance for index 3 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js3.sock, EVDEV: /tmp/selkies_event1003.sock). INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started. INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started. INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started. INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started. INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock WARNING:data_websocket:Cannot broadcast cursor data: no clients connected or server not ready. INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57152) INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768} INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57152) INFO:data_websocket:Attempting to establish PulseAudio connection... INFO:data_websocket:PulseAudio connection established. INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328} INFO:gst_app_resize:on_resize_handler attempting resize for: 2704x1328 INFO:gst_app_resize:App dimensions updated to 2704x1328 before xrandr call. INFO:gst_app_resize:Mode 2704x1328 not found in xrandr list. Attempting to add for screen 'screen'. INFO:gst_app_resize:Successfully ran: xrandr --newmode 2704x1328 302.50 2704 2896 3184 3664 1328 1331 1341 1377 -hsync +vsync INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 2704x1328 INFO:gst_app_resize:Applying xrandr mode '2704x1328' for screen 'screen'. INFO:gst_app_resize:Successfully applied xrandr mode '2704x1328'. INFO:gst_app_resize:resize_display('2704x1328') reported success. INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings. INFO:data_websocket:Initial client settings message processed by ws_handler. WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change. INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start. INFO:data_websocket:Starting pcmflux audio pipeline... INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2 INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328} INFO:data_websocket:pcmflux audio capture started successfully. INFO:data_websocket:pcmflux audio chunk broadcasting task started. WARNING:webrtc_input:No clipboard content to send INFO:data_websocket:Received START_VIDEO for encoder: x264enc INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc'). INFO:data_websocket:x264enc capture started successfully. INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio. INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active. INFO:data_websocket:Frame-based backpressure logic task started. INFO:data_websocket:Client settings received, proceeding with backpressure loop. INFO:webrtc_input:Set clipboard content, length: 438 INFO:webrtc_input:Sending clipboard content, length: 438 [pcmflux] Attempting to connect to PulseAudio device: system_default... [pcmflux] SUCCESS: Connected to PulseAudio. [pcmflux] SUCCESS: Opus encoder created. [pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes X Shared Memory Extension available. XShm setup complete for 2704x1328. CPU cores available: 4 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] First non-silent audio chunk detected! Encoding... [pcmflux] Status | Read: 1, Silent: 0 (0.0%), Encoded: 1, Rate: 0.01 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 57152)... INFO:data_websocket:Last client (('127.0.0.1', 57152)) disconnected. Cancelling frame backpressure task. Capture loop stopped. X resources released. [pcmflux] Attempting to connect to PulseAudio device: system_default... [pcmflux] SUCCESS: Connected to PulseAudio. [pcmflux] SUCCESS: Opus encoder created. [pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes X Shared Memory Extension available. XShm setup complete for 2704x1328. CPU cores available: 4 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] First non-silent audio chunk detected! Encoding... INFO:data_websocket:No other clients in set after ('127.0.0.1', 57152) disconnected. Marking pipelines for stop. INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 57152)). INFO:main:Initiating unified pipeline shutdown... INFO:main:Queueing x264-striped capture stop. INFO:main:Queueing pcmflux audio capture stop. INFO:main:Waiting for 2 capture module(s) to stop... INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57158) [pcmflux] Stop requested. Cleaning up capture loop... [pcmflux] Audio capture loop finished. Resources released. INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328} INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57158) INFO:data_websocket:Attempting to establish PulseAudio connection... INFO:data_websocket:PulseAudio connection established. INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 2704, 'manualHeight': 1328, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328} INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings. INFO:data_websocket:Initial client settings message processed by ws_handler. WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change. INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start. INFO:data_websocket:Starting pcmflux audio pipeline... INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2 INFO:data_websocket:pcmflux audio capture started successfully. INFO:data_websocket:Received START_VIDEO for encoder: x264enc INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True INFO:data_websocket:Frame-based backpressure logic task cancelled. INFO:data_websocket:Frame-based backpressure logic task finished. INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify. INFO:data_websocket:Resetting frame IDs. INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s). INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc'). INFO:data_websocket:x264enc capture started successfully. INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio. INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active. INFO:data_websocket:Frame-based backpressure logic task started. INFO:data_websocket:Client settings received, proceeding with backpressure loop. INFO:main:All C++ capture modules have stopped. INFO:data_websocket:Frame-based backpressure logic task cancelled. INFO:data_websocket:Frame-based backpressure logic task finished. INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify. INFO:data_websocket:Resetting frame IDs. INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s). INFO:data_websocket:pcmflux audio chunk broadcasting task cancelled. INFO:data_websocket:pcmflux audio chunk broadcasting task finished. INFO:main:Unified pipeline shutdown complete. INFO:data_websocket:Data WS handler for ('127.0.0.1', 57152) finished all cleanup. INFO:data_websocket:Stats sender: WS connection closed. Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 18, Silent: 0 (0.0%), Encoded: 18, Rate: 0.14 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 INFO:webrtc_input:Set clipboard content, length: 438 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps INFO:webrtc_input:Set clipboard content, length: 438 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps [pcmflux] Stop requested. Cleaning up capture loop... [pcmflux] Audio capture loop finished. Resources released. Capture loop stopped. X resources released. INFO:data_websocket:Received STOP_VIDEO INFO:data_websocket:Received START_VIDEO for encoder: x264enc INFO:data_websocket:x264enc pipeline is already capturing. INFO:webrtc_input:Set clipboard content, length: 438 INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 57158)... INFO:data_websocket:No other clients in set after ('127.0.0.1', 57158) disconnected. Marking pipelines for stop. INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 57158)). INFO:main:Initiating unified pipeline shutdown... INFO:main:Unified pipeline shutdown complete. INFO:data_websocket:Data WS handler for ('127.0.0.1', 57158) finished all cleanup. INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 57170) INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 2704, "height": 1328} INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 57170) INFO:data_websocket:Attempting to establish PulseAudio connection... INFO:data_websocket:PulseAudio connection established. [pcmflux] Attempting to connect to PulseAudio device: system_default... INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'h264_streaming_mode': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 2704, 'manualHeight': 1328, 'audioBitRate': 320000, 'videoBufferSize': 0, 'initialClientWidth': 2704, 'initialClientHeight': 1328} INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings. INFO:data_websocket:Initial client settings message processed by ws_handler. WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change. INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start. INFO:data_websocket:Starting pcmflux audio pipeline... INFO:data_websocket:pcmflux settings: device='', bitrate=320000, channels=2 INFO:data_websocket:pcmflux audio capture started successfully. INFO:data_websocket:pcmflux audio chunk broadcasting task started. INFO:data_websocket:Received START_VIDEO for encoder: x264enc INFO:data_websocket:Starting x264enc: 2704x1328 @ 60.0fps, CRF: 25, FullFrame: True INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc'). INFO:data_websocket:x264enc capture started successfully. INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio. INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active. INFO:data_websocket:Frame-based backpressure logic task started. INFO:data_websocket:Client settings received, proceeding with backpressure loop. [pcmflux] SUCCESS: Connected to PulseAudio. [pcmflux] SUCCESS: Opus encoder created. [pcmflux] Capture loop started. Device: system_default, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, PCM Chunk: 3840 bytes X Shared Memory Extension available. XShm setup complete for 2704x1328. CPU cores available: 4 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] First non-silent audio chunk detected! Encoding... [pcmflux] Status | Read: 1, Silent: 0 (0.0%), Encoded: 1, Rate: 0.01 kbps INFO:data_websocket:Stats sender: WS connection closed. Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 6.00 EncStripes/s: 6.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 2.00 EncStripes/s: 2.00 [pcmflux] Status | Read: 18, Silent: 0 (0.0%), Encoded: 18, Rate: 0.22 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 5.00 EncStripes/s: 5.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 4.00 EncStripes/s: 4.00 [pcmflux] Status | Read: 99, Silent: 0 (0.0%), Encoded: 99, Rate: 1.19 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 8.00 EncStripes/s: 8.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 7.00 EncStripes/s: 7.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 3.00 EncStripes/s: 3.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00 [pcmflux] Status | Read: 100, Silent: 0 (0.0%), Encoded: 100, Rate: 1.20 kbps Res: 2704x1328 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00