feat(webcams): add iframe-based webcam service option#2384
Conversation
Signed-off-by: Codex <codex@openai.com>
|
This is exactly the Webcam mode which I don't want to implement, because it could be "miss used" like that... I will review the code and see if there are some "downsides" of it. |
|
Totally fair — I understand the concern. All I can really ask is that you consider it on its technical merits. It’s fully opt-in, isolated, and doesn’t affect existing webcam behavior. For me it solves a real use case right now, and keeping it upstream would avoid having to maintain a long-term patch or fork for something that’s otherwise generic and self-contained. Happy to tighten or constrain it if you spot concrete downsides during review. |
… client Signed-off-by: Stefan Dej <meteyou@gmail.com>
…y 100% width Signed-off-by: Stefan Dej <meteyou@gmail.com>
… fallback aspect-ratio Signed-off-by: Stefan Dej <meteyou@gmail.com>
Signed-off-by: Stefan Dej <meteyou@gmail.com>
|
@justinh-rahb pls enable "Allow edits by maintainers" in the sidebar. I just fixed the rotation and make the aspectRatio more generic, because I should add this also for other streamers. |
|
@meteyou just enabled it. thanks for taking a look and for the improvements. Happy to help or adjust anything else as needed. |
|
@justinh-rahb thx! i pushed my changed. pls double check it again, then i will merge it. |
|
@meteyou looks good to me 👍 |
Signed-off-by: Stefan Dej <meteyou@gmail.com>
|
@justinh-rahb did you disabled the option to push commits again? I just would like to push a small fix for the aspect ratio validation. |
Sorry, yes I had a secret I needed to push the test. I've removed it and re-enabled now. The test build works!
|
Signed-off-by: Stefan Dej <meteyou@gmail.com>
|
@justinh-rahb thx for your contribution! |
|
Thanks for the quick review and for working through this with me, I really appreciate the consideration and the improvements you made. There’s a small group of us working on U1 tooling and frontend integration, and while iframe is an imperfect solution today, it’s a meaningful first step toward relying exclusively on mainline Orca without vendor-specific forks or apps. Thanks again for taking the time 🙏 |
|
I've taken the liberty of preparing a small addition to the docs to address this change: mainsail-crew/gb-docs#23 |

Description
This PR adds an optional iframe-based webcam service that allows embedding arbitrary webpages as webcam tiles.
Mainsail currently assumes webcams are video streams (MJPEG/WebRTC). This works well for traditional cameras, but makes it impossible to display non-video visual sources that are exposed as webpages.
The iframe service is fully opt-in, isolated from existing webcam implementations, and easy to ignore for setups that don’t need it.
Concrete use case
On Snapmaker U1 (Extended community firmware), the printer exposes a live, interactive view of its integrated touchscreen as a webpage rather than a video stream.
With iframe webcam support:
A short recording demonstrating this workflow is included below.
What’s included
Webpage (iframe)webcam service option in settingsScope
Related Tickets & Documents
Mobile & Desktop Screenshots/Recordings
Screen.Recording.2026-01-09.at.10.26.39.AM.mp4