mirror of
https://github.com/open-webui/computer.git
synced 2026-11-05 01:17:24 +00:00
[GH-ISSUE #156] bug: Browser streaming fails on any host without a hardware video encoder #81
Labels
No labels
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/computer#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @knguyen298 on GitHub (Jul 20, 2026).
Original GitHub issue: https://github.com/open-webui/computer/issues/156
Summary
cptr/frontend/static/browser-encoder.jsconfigures the WebCodecsVideoEncoderwithhardwareAcceleration: 'prefer-hardware'. On hosts with no hardware video encoder (headless servers, GPU-less VMs),VideoEncoder.isConfigSupported()returnssupported: falsefor every codec, so the guard throws and the browser tab errors out.Environment
Root cause
Per the WebCodecs spec,
hardwareAccelerationdefaults tono-preference, andprefer-hardware/prefer-softwareare hints that user agents should respect when possible but may ignore. Chromium does not implement them as hints: it treatsprefer-hardwareas a hard requirement, whileno-preferencemeans "use hardware if available, otherwise fall back to software."Because there is no hardware encoder on these hosts,
prefer-hardwarecausesisConfigSupported()to return false for all codecs, and this guard throws:Confirmed empirically on current Chrome: with
prefer-hardwarethe config returnssupported: false; withno-preferenceit returnstrueand encodes in software.Suggested fix
Change the encoder config in
browser-encoder.js:This loses nothing on hosts that have a hardware encoder (Chromium still uses hardware under
no-preference); it only adds the software fallback where no hardware encoder exists. If explicit intent is preferred, tryprefer-hardwarefirst and retry once withno-preferenceon!supportedbefore throwing.@tjbck commented on GitHub (Jul 21, 2026):
Should be addressed, testing wanted here!
@pixel4696 commented on GitHub (Aug 28, 2026):
@tjbck it works on firefox on windows but not firefox android