Show HN: 使用 WebRTC 为 CUA 模型进行实时流传输 (开源,Apache 2.0 协议)
1 分•作者: juecd•6 个月前
嗨,HN,
我们一直在基于我们的浏览器-unikernel 仓库 [0] 进行开发,并希望用更快的方案来替代 noVNC 远程 GUI。NoVNC 还可以,但对于任何 JavaScript 密集型网站(基本上除了 Hacker News 之外的任何网站……)来说,它都非常卡顿。我们使用 WebRTC 添加了远程 GUI 支持,它支持:
* 低延迟的沙盒浏览器实时读写视图(滚动、点击、打字感觉更灵敏)
* 可以直接作为 Docker 容器或在 Unikraft unikernel 上启动
* 如果使用 unikernel,可以处理实时流,启动时间非常快(<20ms)
WebRTC 功能强大(支持所有类型的媒体和数据传输),但实现起来并不简单。我们改编了 Neko [1] 库,使其与我们的基础 Chromium 镜像配合良好。我们还根据我们的用例定制了前端。
非常欢迎有做过流媒体项目的朋友们提出任何想法/反馈。
[0] [https://news.ycombinator.com/item?id=43705144](https://news.ycombinator.com/item?id=43705144)
[1] 改编自:[https://github.com/m1k1o/neko](https://github.com/m1k1o/neko)
[2] [https://github.com/onkernel/kernel-images](https://github.com/onkernel/kernel-images)
* 注意:我们已经开始着手添加视频回放功能,因此我们的仓库中已经有一些相关的源代码。
查看原文
Hey HN,<p>We’ve been building on top of our browser-unikernel repo [0] and wanted to replace the noVNC remote GUI with something much faster. NoVNC is okay but it’s super laggy with any JS-heavy website (basically anything besides Hacker News…). We added remote GUI support using WebRTC, which supports:<p>- low latency read/write live view into the sandboxed browser (scrolling, clicking, typing feel way more responsive)
- can launch directly as a Docker container or on Unikraft unikernels
- process real-time streams with a fast boot up time (<20ms) if you’re using unikernels<p>WebRTC is powerful (supports all types of media and data transmission) but not trivial to implement. We adapted the Neko [1] library to play nicely with our base Chromium image. We also tailored the frontend to our use case.<p>Would love any thoughts/feedback from folks who’ve worked on streaming projects before.<p>[0] <a href="https://news.ycombinator.com/item?id=43705144">https://news.ycombinator.com/item?id=43705144</a>
[1] Adapted from: <a href="https://github.com/m1k1o/neko">https://github.com/m1k1o/neko</a>
[2] <a href="https://github.com/onkernel/kernel-images">https://github.com/onkernel/kernel-images</a><p>* Note: we've started working on adding video replays, so there's some source code for that already in our repo too.