Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Selkies as renderer and "waiting from stream..." message. Container doesn't display.

Featured Replies

Hello,

I was using a Firefox application, specifically the one from lscr.io/linuxserver/firefox. It was working well until a recent update changed the "renderer" (I'm not sure what it's called) from VNC or KasmVNC to Selkies. However, Selkies isn't rendering anything.

All I see is a message that says, "waiting for stream...", but nothing happens, and none of the available options seem to help resolve the issue. As a temporary fix, I installed an alternative Firefox ESR version that still uses the old renderer. However, I'm concerned this issue might affect other containers with web rendering capabilities, so I'd like to find a permanent solution.

Do you have any suggestions on how to fix this? Is there an option I should enable or disable, either within the container or in the Docker settings?

I'm on 7.1.4 version of Unraid.

image.png

Edited by zarkoff

same here :(

You have to access firefox over https now. The default port is 3001.

  • Author
1 hour ago, Trent said:

You have to access firefox over https now. The default port is 3001.

Hi, I tried but this is the same with https and 3001: waiting for stream...

See the 2th line of log below is warning me about something but I don't know how to fix.

Log Firefox

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 applyclient_settings but is not. This might indicate an issue or a no-op change.

WARNING:webrtc_input:No clipboard content to send

INFO:data_websocket:Received START_VIDEO for encoder: x264enc

INFO:data_websocket:Starting x264enc: 3386x1256 @ 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: Server-to-client audio pipeline already reported as active.

INFO:data_websocket:Frame-based backpressure logic task started.

INFO:data_websocket:Client settings received, proceeding with backpressure loop.

INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 56436)...

INFO:data_websocket:Client ('127.0.0.1', 56436) disconnected, but other clients remain. Frame backpressure task continues.

INFO:data_websocket:Client from ('127.0.0.1', 56436) disconnected. Checking responsiveness of remaining 1 client(s)...

INFO:data_websocket: Remaining client ('127.0.0.1', 46538) is responsive.

INFO:data_websocket:Client from ('127.0.0.1', 56436) disconnected. Responsive clients (1) remain. Global pipelines will NOT be stopped by this handler.

INFO:data_websocket:Data WS handler for ('127.0.0.1', 56436) finished all cleanup.

INFO:data_websocket:Frame-based backpressure logic task started.

INFO:data_websocket:Client settings received, proceeding with backpressure loop.

INFO:data_websocket:Stats sender: WS connection closed.

INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 46538)...

INFO:data_websocket:Last client (('127.0.0.1', 46538)) disconnected. Cancelling frame backpressure task.

INFO:data_websocket:No other clients in set after ('127.0.0.1', 46538) disconnected. Marking pipelines for stop.

INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 46538)).

INFO:data_websocket:Stopping X11 x264-striped capture...

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 resetframe_ids_and_notify.

INFO:data_websocket:Resetting frame IDs.

INFO:data_websocket:Frame IDs reset, but no clients to notify.

INFO:gst_app:Stopping WebSocket audio pipeline...

INFO:gst_app:WebSocket audio pipeline stopped.

INFO:data_websocket:Data WS handler for ('127.0.0.1', 46538) finished all cleanup.

INFO:data_websocket:Frame-based backpressure logic task started.

INFO:data_websocket:Client settings received, proceeding with backpressure loop.

INFO:data_websocket:Stats sender: WS connection closed.

INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 49196)

INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 3386, "height": 1256}

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, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 3386, 'manualHeight': 1256, 'audioBitRate': 128000, 'videoBufferSize': 0, 'initialClientWidth': 3386, 'initialClientHeight': 1256}

INFO:data_websocket:Initial client settings processed and event set by applyclient_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 applyclient_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:gst_app:Starting WebSocket audio pipeline...

INFO:gst_app:Building WebSocket audio pipeline...

INFO:gst_app:Audio pipeline state change to PLAYING is ASYNC.

INFO:gst_app:WebSocket audio pipeline started.

WARNING:webrtc_input:No clipboard content to send

INFO:data_websocket:Received START_VIDEO for encoder: x264enc

INFO:data_websocket:Starting x264enc: 3386x1256 @ 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: Server-to-client audio pipeline already reported as active.

INFO:data_websocket:Frame-based backpressure logic task started.

INFO:data_websocket:Client settings received, proceeding with backpressure loop.

INFO:data_websocket:Cleaning up Data WS handler for ('127.0.0.1', 49196)...

INFO:data_websocket:Last client (('127.0.0.1', 49196)) disconnected. Cancelling frame backpressure task.

INFO:data_websocket:No other clients in set after ('127.0.0.1', 49196) disconnected. Marking pipelines for stop.

INFO:data_websocket:Stopping global pipelines due to last client disconnect (('127.0.0.1', 49196)).

INFO:data_websocket:Stopping X11 x264-striped capture...

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 resetframe_ids_and_notify.

INFO:data_websocket:Resetting frame IDs.

INFO:data_websocket:Frame IDs reset, but no clients to notify.

INFO:gst_app:Stopping WebSocket audio pipeline...

INFO:gst_app:WebSocket audio pipeline stopped.

INFO:data_websocket:Data WS handler for ('127.0.0.1', 49196) finished all cleanup.

INFO:data_websocket:Frame-based backpressure logic task started.

INFO:data_websocket:Client settings received, proceeding with backpressure loop.

INFO:data_websocket:Stats sender: WS connection closed.

X Shared Memory Extension available.

XShm setup complete for 3386x1256.

CPU cores available: 8

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 6.00 EncStripes/s: 6.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Capture loop stopped. X resources released.

X Shared Memory Extension available.

XShm setup complete for 3386x1256.

CPU cores available: 8

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 5.00 EncStripes/s: 5.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Res: 3386x1256 Mode: H264 (CPU) CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 0.00 EncStripes/s: 0.00

Capture loop stopped. X resources released.

Edited by zarkoff

Having this same issue. Leaving the window open and it seems to eventually show, but it seems to be random..

the program has had 2 updates today and I'm still having the same issue. hopefully it gets fixed soon.

You have to force it to HTTPS now, so you need to adjust the advanced settings in the template so that the webui link goes to the https address and port.

That's fine, but selkies is awful for this and has massive latency unless you force a low quality MJPEG stream, perhaps we can give it hardware acceleration access to improve it?.
I know selkies is supposed to be technically excellent, but in this case i just want to access a web browser on my local server for some specific use cases, I don't need a feature rich gaming and remote work kvm system for that.

  • Author
8 minutes ago, Faceman said:

You have to force it to HTTPS now, so you need to adjust the advanced settings in the template so that the webui link goes to the https address and port.

That's fine, but selkies is awful for this and has massive latency unless you force a low quality MJPEG stream, perhaps we can give it hardware acceleration access to improve it?.
I know selkies is supposed to be technically excellent, but in this case i just want to access a web browser on my local server for some specific use cases, I don't need a feature rich gaming and remote work kvm system for that.

Thanks, but even forcing https:// and port 3001 and JPEG, results the same (for me, at least)

In log I see this

INFO:data_websocket:Data WebSocket Server listening on port 8082

WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.

WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.

do you what it means? do we have to do something with port 8082 ?

Edited by zarkoff

On 6/29/2025 at 10:16 AM, Trent said:

You have to access firefox over https now. The default port is 3001.

Yup, it is working now, thx

On 7/1/2025 at 6:06 PM, zarkoff said:

Thanks, but even forcing https:// and port 3001 and JPEG, results the same (for me, at least)

In log I see this

do you what it means? do we have to do something with port 8082 ?

On 7/1/2025 at 6:06 PM, zarkoff said:

Thanks, but even forcing https:// and port 3001 and JPEG, results the same (for me, at least)

In log I see this

do you what it means? do we have to do something with port 8082 ?

I just dealt with this, and had to edit the container like so:

  1. Edited where it says WEBGUI up above so that it says "https://[IP]:[PORT:3001]"

  2. Remove the WebGUI variable (the one that is HTTP).

  3. Add in two new variables: CUSTOM_USER and PASSWORD

Step three is crucial. Without it, you can't use the docker.

Hope this helps.

  • Author
On 7/10/2025 at 2:30 PM, TheGreenWizard said:

I just dealt with this, and had to edit the container like so:

  1. Edited where it says WEBGUI up above so that it says "https://[IP]:[PORT:3001]"

  2. Remove the WebGUI variable (the one that is HTTP).

  3. Add in two new variables: CUSTOM_USER and PASSWORD

Step three is crucial. Without it, you can't use the docker.

Hope this helps.

Hi, well I did exactly the same, I doesn't work for me.

It seems that your solution works for some people, but unfortunately not for me, and I don't understand why.

Thank you very much for taking the time to help me. I am moving to another Docker container that does not use Selkies.

image.png

image.png

image.png

  • 2 weeks later...

had the samie issue - this video helped for me:
Simple Cloudflare Tunnel Setup on Unraid for Beginners!
https://youtu.be/h5fAcE70xbQ?si=d40Xmf_TMo-GV2va

it explains how to access any docker app in browser with https instead of http (via cloudflare-tunnel)
chrome can be accessed now: https://<your_subdomain>.<your_domain>

note: it seems to me that this is way more responsive then deploying nginx in docker to get access via https://...

hope this helps

  • 3 weeks later...

Having the same problem but with Ungoogled Chromium. Guessing this belongs here too then.

Even after setting the variables CUSTOM_USER and PASSWORD I still get the HTTPS required message on port 3000 and the waiting for stream one on port 3001.

I thought HTTPS was not required when using CUSTOM_USER?

image.png

(https://github.com/linuxserver/docker-ungoogled-chromium/pkgs/container/ungoogled-chromium)

Anyone found a fix for that yet? Nothing in here seems to be working.

Edit: What I noticed when I try port 3001 is this.

It says not secure.

image.png

Edited by myplaybox

On 8/12/2025 at 6:07 PM, myplaybox said:

Having the same problem but with Ungoogled Chromium. Guessing this belongs here too then.

Even after setting the variables CUSTOM_USER and PASSWORD I still get the HTTPS required message on port 3000 and the waiting for stream one on port 3001.

I thought HTTPS was not required when using CUSTOM_USER?

image.png

(https://github.com/linuxserver/docker-ungoogled-chromium/pkgs/container/ungoogled-chromium)

Anyone found a fix for that yet? Nothing in here seems to be working.

Edit: What I noticed when I try port 3001 is this.

It says not secure.

image.png

I have no idea why but I just tried it again and it worked.

Before I used Chromium which gave me those results, Firefox seemed to have no problem. It of course still said the site is unsecure and my certificate is invalid, but after clicking continue anyways it just loaded up on the 3001 (HTTPS) port.

Both browsers can load unsecure sites after clicking away the warning, they have the same permissions and run on the same machine. I have no idea why it makes a difference. Maybe someone can explain why.

So if anyone here is still having problems, try Firefox (if running Chrome).

Thought I might give an update even if this thread is dead.

  • 2 months later...

Just thought I'd bump this because I'm having the same issue with the bambu studio linuxserver container. I use a reverse proxy for all my internal https access, so making the change over to port 3001 wasn't a big issue. With the latest update, I get a mixed bag of issues depending on what OS and/or browser I'm using - I have no clue where to start. These are the issues for each scenario:

linux mint 22.2 - google chrome: continuous cycle of alternating between "waiting for stream" and "a critical video error occured. resetting to default settings and reloading"

linux mint 22.2 - firefox: it works!

linux mint 22.2 - opera: stuck on "waiting for stream"

windows 10 - google chrome: it works!

I am using my intel igpu and have the latest intel gpu drivers installed on unraid. I'm assuming by the mixed bag of results above, there must be some sort of video rendering issue within each browser

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.