This release adds microphone processing controls and local chat controls, expands platform packages, and synchronizes the website and guides. It also fixes native H.264 input/format handling, signaling recovery, fresh STUN discovery, and UDP ownership during overlapping connections. This is **v1.8.0**. Browser/Server v23, Native control v9 and capture v7 remain unchanged, with the existing 1440p ceiling. Additional resolutions, capability negotiation and Magicsock are separate follow-up work. ## Validation - Full local Web check: 79 files / 1,317 tests, TypeScript and production build. - Full Go checks, platform builds and Windows native capture regressions/probe. - Native H.264 Host lifecycle, Browser-to-App fanout and App-exit recovery, and Native H.264 through embedded SFU: all passed with owned process/port/profile cleanup. - Website build, documentation and repository hygiene passed. Existing UI acceptance covers narrow screens, both languages/themes, architecture downloads and all 23 film checks; final packaging and Go race checks run on the merged revision in CI. - Physical macOS/Linux capture, representative public networks and unmatched field reports retain their documented evidence limits. No claim that every blur/disconnection report is resolved. ## Release notes ### 中文 这是一次功能与兼容性更新:麦克风和聊天增加了实用的小选项,App 与 Server 支持更多设备,同时修复了原生分享和连接恢复中的若干问题。现有 1.x 协议保持不变。 #### 新增与改进 - 浏览器麦克风新增「降噪与回声消除」开关,默认开启回声消除、降噪和自动增益;分享音乐或使用虚拟音频输入时,可按需关闭。 - 可调整弹幕字号和透明度,并将当前保留的聊天记录导出为 TXT。当前会话最多保留 1,000 条文字消息,刷新页面后清空;需要保存时请先导出。 - 新增 Intel Mac、Linux ARM64 App,以及 Linux ARM64 Server 和容器镜像。官网下载区可直接选择对应架构,并显示最新版本和发布时间。 - 更新官网演示、README 截图和中英文教程,明确浏览器分享也可选择窗口或屏幕;开始分享前显示房间号占位,保持底栏控件位置稳定。 - 官网新增直达问题排查的入口,补充浏览器 WebRTC 限制、校园网和 Windows 显卡相关的排查步骤。 - App 模式选择页显示免费开源说明、作者与贡献者署名,以及官方网站和源码链接。 #### 修复 - 修正部分 H.264 原生分享的格式兼容性校验,以及 Windows 编码器输入长度和输出缓冲区对齐问题。 - 清理已失效的重连任务和 Native 接收信令,避免旧连接继续影响当前会话。 - 修复 App 重连时可能复用过期公网地址的问题;重新探测使用当前地址,并处理探测丢包和过期响应,保留其他正常连接。 - 修复 App 新旧媒体连接重叠时共用端口造成的冲突,避免准备或撤销新连接打断仍在使用的画面;关闭连接时及时取消未完成的端口映射请求。 - 无站点密码时,连接恢复不再误引导用户输入站点密码。 - 房间失效或会话终止时,开播前后的原因提示统一显示在电视状态图标中,避免额外提示条。 - 修正 Linux 原生采集的时间戳与关键帧时间基准。感谢 Pedro Antonio 在 [#449](https://github.com/TNTcraftHIM/Piik/pull/449) 的贡献。 #### 使用说明 下载对应平台的完整压缩包,退出旧 App 后解压使用。Windows 继续提供 x64;macOS 提供 Apple 芯片与 Intel 版本,原生采集需要 macOS 13 或更新版本。Linux 提供 x64 与 ARM64,原生采集还需安装[系统组件](https://github.com/TNTcraftHIM/Piik/blob/main/native/capture/linux/README.md)。macOS 和 Linux 的实机覆盖仍有限,欢迎反馈。 ### English This update adds useful microphone and chat controls, brings Piik to more devices, and fixes several native-sharing and connection-recovery issues. The existing 1.x protocols remain unchanged. #### New and improved - Browser microphones now have a “Noise & echo reduction” toggle. Echo cancellation, noise suppression and automatic gain control are on by default; turn them off when appropriate for music or virtual audio inputs. - Adjust chat-overlay text size and opacity, and export retained messages as TXT. The current session keeps up to 1,000 text messages and clears on page refresh; export first if you want to keep them. - Added Intel Mac and Linux ARM64 App packages, plus Linux ARM64 Server and container images. The website provides architecture selectors and shows the latest release and publication date. - Updated the website demonstration, README screenshots and bilingual guides, clarifying that browser capture can also select windows or screens. A room-code placeholder keeps the bottom bar stable before sharing starts. - Added direct website links to troubleshooting, with steps for browser WebRTC restrictions, campus networks and Windows graphics issues. - The App mode-selection page now shows its free and open-source status, author and contributor credit, and links to the official website and source. #### Fixes - Corrected H.264 format compatibility checks and Windows encoder input-length and output-buffer alignment handling. - Retired stale reconnect tasks and Native receive signals so they cannot continue affecting the current session. - Fixed App reconnection reusing an expired public address. Fresh discovery handles lost probes and stale responses while preserving other working connections. - Fixed UDP socket conflicts between overlapping App media connections so preparing or canceling a replacement preserves the active picture. Closing a connection now cancels unfinished gateway mapping requests. - Connection recovery on passwordless sites no longer incorrectly asks for a site passphrase. - Expired-room and session-termination reasons now use the same TV status indicator before and during sharing, without an extra notice strip. - Corrected Linux native capture timestamps and keyframe time bases. Thanks to Pedro Antonio for [#449](https://github.com/TNTcraftHIM/Piik/pull/449). #### Updating Download the complete archive for your platform, quit the old App, and extract the new package. Windows remains x64-only. macOS packages support Apple silicon and Intel; native capture requires macOS 13 or newer. Linux supports x64 and ARM64 and requires additional [system components](https://github.com/TNTcraftHIM/Piik/blob/main/native/capture/linux/README.md) for native capture. Physical-device coverage on macOS and Linux remains limited; feedback is welcome. ## Attribution Co-authored-by: Pedro Antonio <wrenchwastaken@gmail.com>
11 KiB
第一次用 Piik
Piik 支持一位房主分享屏幕,最多 20 位受邀观众通过浏览器观看。 本指南介绍加入房间、使用在线版、使用 Piik App,以及通过已有站点分享的方法。
加入房间 · 在线版 · Piik App · 已有站点 · 聊天与表情 · 问题排查
观众只需要浏览器和邀请链接。 分享画面推荐下载 Piik App,选择 公网邀请。 想免安装,可以打开在线版,直接在浏览器里创建房间并分享。
加入朋友的房间
- 用电脑或手机浏览器打开朋友发来的邀请链接。
- 等待画面出现。如果浏览器没有自动播放,点击 播放。
- 将鼠标移到画面上,或轻点画面,显示播放控制栏。
播放控制栏只改变你自己看到的画面和听到的声音。 电脑上单击画面可暂停或继续,双击可进入或退出全屏(浏览器支持时)。 手机上轻点画面唤出控制栏,再使用其中的按钮。Safari 的视频全屏可能使用系统播控。
播放按钮分别做什么?
| 按钮 | 作用 |
|---|---|
| 剧场模式 | 在浏览器标签页内展开画面。 |
| 全屏观看 | 让画面铺满屏幕。 |
| 悬浮小窗 | 浏览器支持时,把视频放进独立小窗。 |
| 音量 | 支持增强时最高 200%,否则最高 100%;声音失真时调低一些。 |
只有四位房间号时,打开同一个 Piik 站点,选择 加入房间。 你可能需要站点口令和房间密码。能否通过房间号加入由房主决定; 无法加入时,请朋友发邀请链接。
房主可关闭链接旁的 免密邀请,复制普通房间地址。访客打开地址后按站点和房间设置 验证口令或密码;仅限邀请的房间需保留凭证。这个开关不会撤销已发出的邀请。
旧链接失效了,就请房主重新发一份当前邀请。 App 的本地房间和临时公网邀请会随本次 App 退出而结束。
使用在线版
- 在浏览器中打开 demo.piik.tv。
- 点击 开始分享,选择 浏览器 分享屏幕、窗口或标签页;也可在电脑或手机上选择 摄像头(需浏览器支持访问)。如需来源声音且选择器提供该选项,启用音频。
- 确认预览后,点击 复制邀请链接,用另一台设备打开,或发送给朋友。
- 分享结束后,点击 停止分享。
在线版由项目提供,画面仅通过设备间直连(P2P)传输。 在受限网络下,可能出现页面能打开、画面无法连接的情况。
用 Piik App 分享
- 从 GitHub Releases 或
Gitee 镜像下载以
piik-app开头、 对应平台的压缩包,完整解压并保留目录结构。 - Windows 打开
piik-app.exe,macOS 打开Piik App.app,Linux 运行./piik-app。 启动页会在系统浏览器里打开。 - 邀请不在同一局域网的朋友时,选择 公网邀请,再点击 进入 Piik。 其他模式的用途见下表。
- 点击 开始分享,按可用选项选择 浏览器、摄像头、程序 / 窗口 或 屏幕, 然后选定要分享的画面与声音。
- 复制房间邀请发给朋友。分享期间保持 App 和分享标签页打开。
| 文件名包含 | 适用平台 |
|---|---|
windows-amd64 |
Windows x64 |
darwin-arm64 |
Apple 芯片;原生采集需 macOS 13 及以上 |
darwin-amd64 |
Intel Mac;原生采集需 macOS 13 及以上 |
linux-amd64 |
Linux x64 |
linux-arm64 |
Linux ARM64 |
目前主要测试 Windows 版 Piik App 和浏览器分享。macOS 和 Linux 版 Piik App 仍需更多实机测试, 欢迎有设备的朋友试用并反馈问题。 Linux 原生采集还需要系统组件。 程序包与启动参数的细节见 App 指南。
选择 App 模式
| 模式 | 什么时候用 | 需要知道 |
|---|---|---|
| 本地房间 | 朋友和你在同一个局域网。 | 出现多个「局域网邀请地址」时,选择与朋友同一网络的网卡和 IP。对方需要能连接到你的电脑,可以设置本地站点口令。 |
| 公网邀请 | 朋友在别处,想临时发个邀请。 | 需要互联网连接;公网地址只在本次 App 运行期间有效。 |
| 连接站点 | 你们已经有一个 Piik 站点。 | 输入站点地址,在原有分享页面使用 App 的采集能力。 |
本地房间和公网邀请可展开 站点口令 设置可选的访问口令。
使用 连接站点 时,填写完整地址,例如 https://demo.piik.tv,然后点击 进入 Piik。
如果站点要求访问口令,在打开的站点页面输入。通过 App 打开过一次后,同一浏览器会记住这个入口。
保持 App 运行并使用该站点配置,之后就能直接访问网址。点击 开始分享,
在选择器里选 程序 / 窗口 或 屏幕,即可使用 App 采集。
浏览器询问本地网络权限时,请允许访问。换浏览器、使用无痕窗口或清除站点数据后,
需要重新从 App 进入一次;换用其他站点时,先在 App 中更新地址。
网页能打开,不代表视频一定能连通。 公网邀请为房间提供临时网页地址, 画面和声音仍靠参与者之间的连接传输。此模式没有媒体服务器兜底, 临时地址也不保证持续可用。所有模式都需要可用的 UDP 媒体路径。 具体连接方式见 App 指南。
使用已有站点分享
需要先有一个运行 Piik Server 的 HTTPS 站点,可以使用朋友或管理员提供的地址。 也可以使用项目提供的在线版或 Piik App。 自建站点属于进阶操作,服务器、HTTPS 和网络端口的配置步骤见部署指南。
- 打开 Piik 站点。如果站点设置了口令,先输入口令。
- 点击 开始分享,选择 浏览器 后在浏览器弹窗里选择屏幕、窗口或标签页; 浏览器支持时,电脑和手机也可选择 摄像头。如需来源声音且选择器提供该选项,启用音频。
- 确认预览画面后,点击 复制邀请链接 发给朋友。
- 保持分享标签页打开。需要时使用 暂停分享、切换来源 或 停止分享。
浏览器屏幕采集需要 HTTPS 站点或 localhost。
弹窗里有哪些画面和声音可选,取决于浏览器与操作系统。
拿到邀请链接的人可以进入这个房间,请把它发给你想邀请的人。
想在同一站点使用 App 采集,可按连接站点的步骤操作。 站点负责房间与邀请,App 提供原生采集。 如果管理员已启用 SFU 转发,房主可在开始分享前关闭 隐私模式,允许使用这条兜底线路。 项目提供的在线版仅使用 P2P。
加上自己的声音
分享时,点击画面下方的 麦克风,并允许访问。 再次点击即可静音。在画面下方的 分享设置 中可以选择麦克风和调节输入音量,默认 100%,最高可调至 200%。 观众会同时听到来源声音和你的解说;房主本机预览保持静音。
摄像头分享不会自动开启麦克风。App 的 程序 / 窗口 和 屏幕 采集也使用同一组控件, 可以保留「默认设备」,也可以指定麦克风。在 摄像头 页签中允许访问后,点击对应的画面卡片开始分享。 设备名称和可用预览取决于浏览器权限;正在分享摄像头时,其他摄像头只显示名称。 建议佩戴耳机,避免扬声器声音被麦克风再次收进去。
通过 浏览器 或 摄像头 分享时,声音设置中的 降噪与回声消除 默认开启, 由浏览器处理回声、杂音和音量。输入音乐或虚拟音频设备的声音时,可关闭它; 设备及系统自身的音效仍由各自设置控制。App 原生采集使用设备及系统的音频设置。
带麦克风的摄像头仍需分别选择画面和音频输入。OBS 虚拟摄像头只提供画面; 如需带上 OBS 的声音,可按 OBS 音频转接教程 设置虚拟音频设备,再在 Piik 的麦克风列表中选择对应输入并开启麦克风。
分享屏幕时排除语音软件的声音
在支持此功能的 Windows App 中,打开 屏幕 页签并开启 系统声音, 在 排除应用声音 中选择语音软件的窗口,再选择要分享的屏幕。 未列出的应用请先打开窗口,再刷新。此功能排除所选进程及其子进程, 其他应用的声音仍会被分享,包括输出到其他播放设备的声音。 它不影响 Piik 麦克风,也不能消除扬声器被麦克风收音产生的回声。
所选应用关闭或重启后,来源声音会停止;请通过 切换来源 重新选择。 暂时关闭来源声音会保留排除选择;需要恢复完整的系统声音时,选择 不排除。 此控件需要新版页面和通过进程排除能力检测的 Windows App,不适用于浏览器自带的分享选择器。
聊天与表情
房主首次开始分享、创建房间后,参与者可以点击沙发下方的 聊天 发送消息。 点击沙发上的人物可打开表情菜单:给自己发的表情出现在头顶,送给朋友的表情会飞向对方。 聊天窗口可以移动和缩放,不会挤动页面。
输入框旁和观众播放控制栏中的 弹幕 可以把新消息显示在画面上,默认关闭,只影响自己的观看。 打开聊天窗口中的 聊天设置,可以调整弹幕字号和不透明度。 系统视频全屏和画中画无法显示弹幕。
停止分享后仍可继续聊天;App 的本地房间和公网邀请需要保持 App 运行。 每个页面只保留本页最近收到的消息,刷新后清空,后来加入的人看不到此前的记录。 需要留存时,可通过 聊天设置 → 导出聊天记录 将本页保留的最近消息(最多 1,000 条)保存为文本文件。 聊天消息经过房间所在的服务器,不提供端到端加密。
遇到问题了
声音、采集、启动或播放遇到问题时,先看问题排查。
画面连接不上
出现「没有可用的媒体线路」等提示时,参阅画面连接排查。