Browser display capture could remain low-resolution after a temporary bandwidth reduction because sender adaptation also reduced the shared capture input. The encoded-output carrier could separately reduce frame rate after the real producer had already adapted, causing repeated queue recovery. Keep display capture and sender feedback separate through bounded native frame streams, retain capture-owned constraints and metadata, and preserve carrier cadence. Existing WebRTC picture adaptation and transport ownership remain in place. Unsupported frame APIs retain ordinary sender tracks. Real display acceptance also exposed an existing VP8 forwarding defect: a 15 fps L1T3 stream reached the SFU subscriber at about 4 fps because both shared forwarding owners overrode LiveKit's temporal limit with T0. Removing those overrides restores the library's layer selection for SFU and Native forwarding. ## Validation - Web type checking, 1,186 tests and production build passed. - Go tests, formatting, vet, Windows/Linux builds and Windows native capture checks passed; macOS packaging runs in the existing native CI job. - H.264/VP8 real-tab first-frame, live/paused settings, source replacement, failure retirement and two-Viewer shaped-network checks passed. - Real display through embedded SFU passed H.264 and VP8: hidden Host, two decoded spatial layers, resumed delivery, track replacement, profile updates, subscription recovery and full cleanup. VP8 decoded cadence recovered from about 4 to 15 fps. Track replacement uses the same visual source, and these checks do not measure A/V synchronization or physical mobile backgrounding. - Shared RTP tests cover all three VP8 temporal layers through Transport and Publication; restoring the old T0 caps makes both tests fail. - Documentation and repository hygiene checks passed. ## Release notes ### 中文 这是一次浏览器分享稳定性修复更新,重点改善网络波动后的画质恢复和编码复用时的画面流畅度。 - 修复部分 Chromium 浏览器屏幕共享降画质后,采集输入持续停留在低分辨率的问题。 - 修复编码复用路径重复降低帧率,导致画面卡顿和反复请求恢复帧的问题。 - 修复部分 VP8 画面经过媒体服务器或 App 转发时,帧率被错误限制在最低时间层的问题。 - 网页用户请在站点更新后刷新页面并重新开始分享;App 用户请更新并重启 App。 复杂画面的恢复速度和不同设备、网络下的短时清晰度波动仍在继续验证,本次更新不代表所有画质波动都已解决。 ### English This maintenance update improves browser sharing stability, focusing on picture recovery after network fluctuations and smoother delivery when encoded frames are reused. - Fixed an issue in some Chromium browsers where display capture could remain at a low resolution after the sender reduced picture quality. - Fixed repeated frame-rate reduction in the encoding-reuse path that could cause stuttering and repeated recovery-frame requests. - Fixed an unintended frame-rate limit when VP8 video with temporal layers passed through the media server or Piik App's forwarding path. - Web users should refresh the page and restart sharing after their site is updated. App users should update and restart Piik App. Recovery with complex content and brief quality fluctuations across different devices and networks remain under investigation. This update does not claim to eliminate every quality fluctuation.
Piik
Share the good stuff.
Private screen sharing for you and up to 20 friends.
Website · Download · Gitee mirror · Use online · Documentation
English · 简体中文
Piik is a free, open-source screen sharing tool for games, movie nights, drawings and photos. Choose what to share and send an invitation. Your friends watch in their browsers.
Features · Get started · Self-hosting · Contributing
Features
- Watch without installing. Friends join by invitation in a desktop or mobile browser.
- Share from Piik App or an existing Piik site. Choose a screen, window, browser tab or camera; available sources and audio depend on the platform.
- Direct connections first. Media travels between participants where possible (P2P). A self-hosted server can provide automatic media forwarding (SFU) as a fallback.
- Rooms you control. Invitations, room codes and optional room passwords, for one host and up to 20 viewers.
- Flexible viewing. Light and dark themes, playback controls, picture-in-picture and a connection topology view.
- One program to host a site. Web UI, room management and optional media forwarding are packaged together.
Interface preview · Sample room with a generated game scene
Get started
To watch: open the invitation your friend sends you. Select Play if the picture does not start automatically.
To share: download Piik App to get started. To share without installing, you can also create a room in the online version.
| Start here | What you need to do |
|---|---|
| Use Piik online | Share from a desktop browser, or choose Camera on a phone with browser camera support. |
| Download Piik App | Extract and open the App, choose Public invite, then Open Piik to create a temporary room. |
| Host your own site | Advanced: deploy Piik Server on a Linux x64 server with your own domain, then connect through Piik App or a browser. |
- Select Start sharing, then choose the picture and audio to share.
- Select Copy invite link and send it to your friends. Keep the sharing tab open.
Turn on the Microphone for commentary; its settings let you choose the input device and adjust your voice volume.
Piik follows your system language: Chinese or English, with English as the fallback. Use 中 / EN / ✦ in the header to switch language or try the visual mode. The App offers a local room, a temporary public link, or a connection to your own site. Keep the App running while sharing through it.
Download a ZIP beginning with piik-app. The filename also identifies the platform:
| Filename contains | Platform |
|---|---|
windows-amd64 |
Windows x64 |
darwin-arm64 |
Apple silicon; native capture requires macOS 13+ |
linux-amd64 |
Linux x64 |
Full setup guide → · Open online →
Browser capture requires HTTPS or localhost. Windows App and desktop browser
sharing are the primary tested paths. The macOS and Linux apps have not yet been
tested on physical devices; test results and feedback are welcome.
P2P-only modes, including the App's temporary public
link and the online version, may not connect on restrictive networks.
Self-hosting
Piik Server is a standalone binary with the web interface built in.
Download the Linux x64 Server package (piik-<revision>-runtime.tar.gz),
extract it, and run:
./piik-server
Open http://localhost:8787 to try it locally. For a public site, configure your
domain, HTTPS reverse proxy and STUN address. Room data is stored in SQLite.
For containers, use the Docker Compose setup.
Deploy your own site → · Configuration · Run from source
Contributing
Bug reports, translations, documentation improvements and pull requests are welcome. See ways to contribute or help translate Piik. Use the repository layout to find your way around.
License
Piik-owned code is MIT licensed. Dependencies retain their own licenses and notices.