An individually rejected ICE candidate could abort the App's local media bridge, an SFU publication or a Browser encoding probe. Separately, a retiring native downstream edge could propagate its closed transport into the shared source and stop capture. This phase keeps those failures at their existing resource owners, fences late bridge signaling after disposal, and corrects native Opus receive preferences. Existing candidate handling is reused across sibling paths. No route policy, retry budget, protocol version, configuration or UI is added. Browser ingress stereo normalization remains necessary for already-published Apps. Validation: `npm run check` (74 files, 1081 tests, type-check and Web build), `npm run check:go` (including Windows native compilation), documentation and repository hygiene passed. Windows Chrome H264 and VP8 gates passed candidate fault injection, resize/fullscreen/minimize transitions, live/paused settings, source replacement and re-sharing; Auto whole-display capture also passed. A real Chrome codec-probe comparison reproduces the old false H264 rejection and verifies the correction. Regression tests reproduce the downstream retirement and receive-preference defects. Linux CI owns the Go race check because the local Windows environment lacks cgo. Reported game/device failures remain unconfirmed without matched diagnostics. These fixes do not claim to resolve every share-start or game-entry failure. Interaction/voice/HDR work remains outside this release; its next steps are recorded in the existing TODO ledger. ## Release notes ### 中文 这是一次分享稳定性修复更新,重点避免局部连接错误影响整场分享,并修正原生音频接收协商。 - 修复单条 ICE 候选被拒绝时可能导致开播失败、SFU 发布中断,或自动编码检测误判的问题;连接会继续使用其他有效候选。 - 修复原生下游连接关闭时可能误停整场分享的竞态,并阻止已关闭的本机媒体连接继续发送过期信令。 - 修正原生接收端的 Opus 立体声偏好,首次连接和重新协商均会明确请求立体声。 保持现有版本兼容,无需修改配置。具体游戏、显卡或网络环境中的异常仍需结合诊断记录确认。 ### English This maintenance update improves sharing stability by containing local connection failures and correcting native audio receive negotiation. - Fixed cases where a rejected ICE candidate could prevent sharing, interrupt an SFU publication, or incorrectly rule out H264 during automatic codec detection. Other valid candidates remain usable. - Fixed a race where closing a native downstream connection could stop the entire share, and prevented disposed local media connections from sending stale signaling. - Corrected native Opus receive preferences to request stereo on both initial connection and renegotiation. Existing version compatibility is preserved; no configuration changes are required. Failures specific to a game, GPU or network still need matching diagnostics to establish their cause.
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.