登录

为什么 Cliqer 3 是原生应用:第 2 版做过的尝试,以及原生引擎为何胜出

为什么 Cliqer 3 是原生应用:Rust 引擎、硬件视频、真正的显示输出和 NDI,而不是套在桌面外壳里的网页应用。

Cliqer Team

2026年10月19日 · 阅读时长 5 分钟

A laptop running Cliqer Studio and a phone running Cliqer Remote on a backstage tech table, the stage projection wall glowing behind them

Cliqer 3 今天正式发布。关于它,首先要知道的是它不是什么:它不是把我们的网页应用放进一个更大的桌面框架里。它是为每个系统分别打造的原生应用,一个 Mac 应用和一个 Windows 应用,底层是原生引擎,您的手机和手腕上还有原生的 Remote 应用。同样的房间,同样的登录。改变的是由谁掌管视频、显示器和硬件:是操作系统和 GPU,而不是浏览器引擎。

本文讲的是背后的理由,凡有数据的地方都附上数字。它也公允地回顾了第 2 版做对的地方,因为其中大部分都被直接沿用了。我们只是碰到了一个再多调优也无法突破的天花板,与其假装它不存在,我们更愿意把它解释清楚。

要点
  • 第 2 版是一个外面套着桌面应用的网页应用。它在每个房间都能用,但视频如何采集、编码、排队和绘制由浏览器引擎决定,而且它无法接触采集卡、显示输出或硬件视频功能。
  • 我们把这种设计推到了极限:在有丢包的 Wi-Fi 上,共享屏幕的中位延迟从最高 2.3 秒降到 12 毫秒;在 Mac 上的 PowerPoint 中,一次点击在 48 毫秒内变为翻页。剩下的限制来自设计本身,而非调优。
  • Cliqer 3 在 macOS 15 或更高版本 和 Windows 11 上原生运行:Mac 上用 Metal,Windows 上用 Direct3D,使用系统的硬件编码器,并真正输出到显示器、NDI、采集卡和录制。
  • 同样的思路也在手机上重建了 Cliqer Remote:在我们的测试中,原生应用耗电 86 mAh,而我们最初的 Flutter 版本耗电 168 mAh;手机升温 0.2 °C,而不是 5.9 °C。
  • 原生也有代价:我们要开发两个桌面应用而不是一个,而且 Windows 10 将继续使用上一版桌面应用。我们认为这笔交换显然值得。

第 2 版的设计初衷

第 2 版源于一个简单的承诺:任何手机或浏览器都可以成为演讲者的遥控器。房间链接在浏览器中打开,主持人的电脑运行幻灯片,网络把两者连接起来。正因如此,访客无需安装即可加入,互联网遥控器这个构想也才得以成立。

第 2 版的桌面应用包裹着这个网页应用,并补上了浏览器单独无法完成的事:控制 PowerPoint 和 Keynote、混音、发送 NDI。在此之上,我们加入了 Cliqer Studio 作为一台紧凑的视频切换台,以显示器、摄像头、NDI 源和远程来电者作为输入,Program 输出到房间,并以 NDI 形式送出。

这是一个好设计。网页带给我们单一代码库、即时更新以及可在任何设备上使用的演讲者视图,本文中的任何内容都不会推翻这一点。在 Cliqer 3 中,访客和演讲者依然和以前完全一样,从浏览器或手机加入。

我们把它推到了多远

当屏幕共享出现延迟时,我们没有放弃这个设计。我们花了几个月修复它,并一边修一边把每项修复写成文章。

首先是视频路径。在第 2 版中,共享屏幕的视频通过可靠数据通道传输,而它所基于的标准会等待整整一秒才重发丢失的数据包。我们通过去除重复编码、收紧缓冲区,将持续延迟降低了约四倍。随后我们把重发计时器调整为 Chrome 的数值,并让完整刷新不再排在积压数据之后。在模拟的有丢包 Wi-Fi 测试中,1080p 共享每两分钟出现一秒或更长卡顿的次数从 15 到 22 次降到 0 到 2 次。

模拟有丢包 Wi-Fi 下落后于实时画面的中位延迟,1080p 共享(毫秒)

  • 修复前(最高)2.3 秒
  • 修复后12 毫秒
摘自我们关于屏幕共享修复的文章。越低越好。

其次是点击。到达桌面应用的点击必须先翻动幻灯片,再回报幻灯片编号。我们让与 PowerPoint 或 Keynote 的一条连接保持常开,并直接从刚执行的那一步读取位置。在 Mac 上的 20 次测试中,点击到翻页的中位时间在 PowerPoint 中从 509 毫秒降至 48 毫秒,在 Keynote 中从 408 毫秒降至 42 毫秒。完整经过请看为什么毫秒很重要和延迟修复。

第三是服务器。9 月,我们将实时服务迁离 Cloudflare,转到我们自己的专用服务器上,桌面端启动检查的响应速度现在最高快了 17 倍。

48 ms

Mac 上 PowerPoint 中点击到翻页,此前为 509 毫秒

12 ms

有丢包 Wi-Fi 上的中位延迟,此前最高 2.3 秒

0 to 2

每次测试中一秒或更长的卡顿次数,此前为 15 到 22 次

Up to 17x

迁移实时服务后,桌面端启动检查的提速

这些成果的每一项,都是我们在绕开一个自己无法掌控的层,而那份我们绕不开的问题清单并没有因此缩短。

浏览器托管的技术栈走到了尽头

调优只能在既定的框框里挪动工作。有四个限制始终存在。

任务由浏览器引擎完成时由原生引擎完成时
采集和编码屏幕经由浏览器的采集与编解码器选择,伴随它的权限提示和重发计时器直接来自操作系统,使用机器自身的硬件编码器
绘制画面合成器中的一个页面,与引擎做的其他一切共享资源Mac 的 Metal 或 Windows 的 Direct3D,在我们自己掌控的窗口中
连接显示器和板卡只能通过页面被允许打开的途径真正输出到每块连接的屏幕、采集卡和其他应用
使用硬件功能只有浏览器选择开放的那些HEVC、ProRes、10 位色彩和 genlock,凡系统和板卡提供的都能用

浏览器引擎非常擅长当一个浏览器。它的设计初衷并不是成为一台切换台,连续数小时保持每秒 60 帧,同时把画面送到投影机、采集卡和录制。Studio 越像一台切换台,这些不匹配就越明显。

Cliqer 3 中的「原生」意味着什么

Cliqer 3 是为每个系统分别打造的应用,而不是两者共用一个应用。在 Mac 上,它为 macOS 15 或更高版本打造,并在 macOS 26 上支持 Liquid Glass。在 Windows 上,它为 Windows 11 打造,采用 Acrylic 和 Mica 材质。菜单、窗口、权限和快捷键都遵循平台规范。v3 文档列出了各平台目前具体支持的功能。

桌面引擎用 Rust 编写,负责除绘制之外的一切;原生 Remote 应用则构建在它们自己的 Rust 核心之上,因此每个平台共享自身的逻辑,而不是重复实现。我们在为什么我们基于 Rust 核心将 Cliqer Remote 重建为原生应用一文中,用测量数据解释了这一选择。

macOS 上的 Studio 窗口。状态栏显示 Program 帧率以及 GPU 和 CPU 负载。

一个应用,多个窗口

主窗口包含房间链接、二维码、您的演讲者和计时器。Studio、计时器、共享选择器、聊天、设置、External Control 和日志各自是独立的窗口,因此您可以把每个窗口放到想要的屏幕上。您依然用已有的许可证密钥或账户登录。

延迟:您与画面之间的层更少了

延迟是一个总和,而原生应用让我们可以从中删掉若干项。采集来自系统,编码在机器具备硬件编码器时由其完成,GPU 在应用自己的窗口中绘制画面。

在这里我们对承诺很谨慎。目前测得的提升就是上面那些,而且它们始于第 2 版。今天发布的版本为您带来:

  • 点击:在电脑上数十毫秒内到达您的幻灯片。
  • Cliqer Live:在 220 毫秒内向观众呈现舞台画面,内置于 Studio,无需推流密钥。详情请见 Cliqer Live。
  • 可以监看的 Program。 Studio 的状态栏显示帧率,旁边是 GPU 和 CPU 负载。

第 2 版与第 3 版的屏幕共享对比取决于您的网络和显示器,所以最公平的测试是在您自己的环境中彩排一次。

硬件解码与编码

系统的硬件编码器在编码视频时比软件发热更少,并让 CPU 腾出来处理演出的其余部分。原生应用可以直接调用它。

在 Cliqer 3 中,Mac 上的视频路径是零拷贝的。摄像头帧、源和 Program 自始至终都留在 GPU 内存中,硬件编码器直接从 GPU 表面读取 Program,因此画面在送往推流或文件的途中从不会被拷贝到 CPU 再拷贝回来。在 Windows 上,摄像头解码和色彩转换都在 GPU 上运行。

推流也是为实时而编码的。Studio 不使用帧重排序,因此没有需要观众解码器等待的 B 帧,观众端也不会额外增加解码延迟。

在 Studio 文档中,这体现为直观的数字:在 Mac 上,硬件编码器以最高 2160p 编码 H.264,HEVC 编码完整的 Program 尺寸,8K 以最高每秒 30 帧运行,同时所有 Cliqer Live 画质并行运行,且不丢帧。Program 尺寸从 720p 到 8K,帧率为每秒 25 到 60 帧,适用于包含该功能的方案。两个最高方案 Studio 8K 和 Enterprise 支持 8K,价格页面列出了每个方案的最新限制。8K 画布为 7680 x 4320:相当于一台电脑驱动十六块全高清屏幕。Studio 的状态栏始终显示 Program 帧率及旁边的 GPU 和 CPU 负载,让您随时了解机器的负荷情况。

手机端遵循同样的原则。原生 Remote 应用使用手机的硬件解码器解码视频,并在系统合成的图层上显示,因此界面不会为每一帧重绘。正是这一点在下文的手机测试中带来了差异。

显示器、NDI 以及画面需要抵达的每个地方

这是原生应用最能体现价值的地方。一场演出很少只是一块屏幕上的一个画面:它包括供现场观看的节目画面、给演讲者的提示监视器、送往推流电脑的信号、一路录制以及一整面投影墙。

Studio 可将 Program 送到房间、NDI、录制、推流、虚拟摄像头、显示器、Mac 上的 Syphon 或 Windows 上的 Spout,以及 Blackmagic 板卡。任何输入都可以作为独立的 NDI 源输出,Multiview 也有自己的 NDI 信号。每个输出都有独立的开关、设置和状态,您可以任意组合同时运行。文档中的输出逐一介绍了每种输出,我们的面向活动团队的 NDI 指南则解释了它的定位。

在大型演出中,我们把画面一分为二。主屏幕,也就是投影机和 LED,保持在从切换台到处理器的硬件链路上,那里的延迟必须为零。其他一切都走 NDI:演示用笔记本电脑以 Cliqer Timer 发送计时器,一台 Studio 电脑接收所有 NDI 源,并把返送画面送到台前监视器,把 Multiview 送给工作人员,把 Program 送往录制和推流。这正是原生应用让其成为可能的一层,它把硬件输出留给了大屏。Cliqer 与 Barco E2 对比完整展示了这种分工。

在 Mac 上,Cliqer 运行时插入或拔出显示器都会被识别。显示器输出可以全屏承载 Program、Preview、Multiview 或单个输入,并以显示器的原生模式输出,画面最清晰。对于大型屏幕墙,投影(Projection) 可让一个画面横跨多个输出,每个输出一个切片,支持四角校正和边缘融合。它不止于切片映射:Warp Grid 支持 2 到 9 列和行,可选 Linear 或 Bezier;Edge Blend 根据重叠区域自动计算;红、绿、蓝三色各有 Gamma 调节;还有黑电平以及最多 8 个遮罩。投影功能随 Studio 8K 和 Enterprise 提供。

当一台电脑不够用时,可在设置 > 高级 > 冗余中将多台电脑配对为渲染机。这样一场演出就能把画布拆分到它们之间,每台在同一帧上绘制各自的区域;配对的 Backup 会跟随 Main,并在其停止时接管。渲染机随 Studio 8K 和 Enterprise 提供;设置方法见冗余。

画质:10 位、HDR 和 ProRes

在 Cliqer 3 中,Studio 的 Program 可以运行在 10 位 SDR、HDR PQ 或 HDR HLG 模式下,最高 4K,HDR 输入会针对输出进行色调映射。使用 10 位或 HDR 的 Studio Format 时,Blackmagic 输出发送 10 位信号,NDI 发送 16 位,HEVC 承载真正的 10 位画面(Main10)。Blackmagic 输出会显示其 genlock 状态,帧率由板卡决定。

录制同样用心:Studio 可以 H.264、HEVC、ProRes 422 和 ProRes 422 HQ 格式录制,其中 ProRes 在 Mac 上提供。媒体可播放 HAP、HAP Q、HAP Alpha、HAP Q Alpha 和 HAP R 格式。10 位和 HDR、HEVC 和 ProRes 随 Studio 8K 和 Enterprise 提供,价格页面列出了每个方案包含的功能。

按自己节奏运行的屏幕

Studio 中的屏幕是第二台切换台,拥有自己的 Preview、Program、Cut 和 Take。可以用它做提示监视器、舞台计时器或 4K 大屏的四分之一,再把整块屏幕作为输入混回来。Studio 8K 最多运行 16 块屏幕。想全面了解 Studio,请阅读 Cliqer Studio:我们的直播制作切换台;屏幕的计算方式请见屏幕与混合。

第 2 版的 Studio 是一台紧凑的视频切换台:Cut 和 Fade 转场,带通道条、推子和 Program 总控的音频混音器,Program 输出到房间并以 NDI 形式送出。Cliqer 3 的 Studio 提供以下功能,全部记录在 Studio 指南中:

  • 转场: Cut、Fade、Morph、Wipe、Slide 和 Zoom,配有 T 型推杆和多种曲线可选。
  • 带路由的完整音频混音器: 32 位浮点引擎、Bus A 和 B、您自定义的编组和返回、耳机、Master 与每条总线上的限幅器、VST3 和 Audio Units 插件,以及覆盖所有音频输入输出的 Router。
  • 录制与推流: H.264、HEVC 或 ProRes 编码的 MP4 或 MOV 文件,以及 RTMP、RTMPS、SRT、WHIP 或 Cliqer Live 推流。
  • 其他输出: 用于 Zoom 和 Teams 的虚拟摄像头和麦克风、显示器输出、Syphon 或 Spout、Blackmagic 板卡,以及每个输入单独录制一个文件。
  • 额外屏幕,每块都是一台独立的切换台,拥有自己的 Take。

音频:带插件和路由的浮点混音器

声音获得了与画面同样的原生待遇。在 Cliqer 3 中,Studio 的混音引擎以 32 位浮点运行:每个通道条、总线和插件都以浮点运算,因此无论发送电平多高,混音内部都不会削波,实际上为您提供无限的内部动态余量。限幅器在输出端设定上限,Master 上一个,每条总线上各一个,可在 -24 到 0 dB 之间调节;视频通话嘉宾获得的 mix-minus 返送绝不会超过该上限。

每个输入通道条都带有 Cliqer 自有的处理:0 到 1000 毫秒的延迟、20 到 400 Hz 的高通滤波器、门限、覆盖 20 Hz 到 20 kHz、增益 -18 到 18 dB、Q 值 0.1 到 10 的四段 EQ,以及压缩比最高 32、膝部最高 24 dB 的压缩器。它专为实时音频线程编写,从不分配内存,也从不加锁,因此在高负载下不会出现爆音。当您想要特定的声音时,可以在输入通道条上插入自己的插件:macOS 和 Windows 上支持 VST3,macOS 上支持 Audio Units,每个插件都有自己的编辑器,状态会保存在演出文件中。

这是一台带路由的完整混音器,而不是一排推子。您可以添加自己的编组(Groups) 用于子混音,添加返回(Returns) 用于效果和共享发送,然后对它们重命名、重新排序和复制。发送可设为推子前或推子后,有一路耳机混音,每条总线都有自己的推子、静音、电平表、处理和限幅器。房间、每个 NDI 输出、每个路由输出以及每位视频通话嘉宾的返送都可以按名称选择任意总线,每次编辑都是一个撤销步骤。通道条处理、编组和返回随所有 Studio 方案提供。

Router 以 Patch 和 Matrix 两种视图显示所有音频输入和输出:设备输入、网络输入、设备输出和网络输出。Dante Virtual Soundcard、Dante Via、AVB 和 BlackHole 都显示为可路由的普通设备。AES67 网络音频每个端点最多承载 64 个 24 位通道,由 PTP 提供时钟。Ableton Link 带来曲速、节拍和 Link Audio,Windows 支持 48 kHz 的 ASIO,您可以按设备选择通道并指定时钟主设备。

可靠性:出问题时会发生什么

一场直播演出要看它最糟糕的那一分钟。原生在三个方面有所帮助,文档中都有说明。

录制在崩溃后得以保留。 Studio 以小片段写入录制文件,因此即使应用或电脑崩溃,直到大约最后两秒之前的所有内容都已保存在磁盘上。

第二台电脑可以接管。 借助冗余功能,Backup 跟随 Main,保持演出媒体同步,并在 Main 停止响应时接管播出。热备份随 Studio 8K 提供,两台电脑通过一个代码配对。

服务器不再给我们添乱。 Cliqer 的实时服务运行在我们自己的专用服务器上,计划内更新约一秒即可让客户端重新连接,空闲连接的建立时间从 1.2 秒缩短到 0.14 秒。参见我们为什么迁离 Cloudflare。

手机上的电量与发热

可靠性也关乎演讲者手中握持一小时的那台设备。我们用一台 Galaxy S24+ 测试了三个版本,每个十分钟,观看同一个持续变化的共享屏幕。最初的 Flutter 版本为显示视频每秒重绘界面约 48 次,耗电 168 mAh,使手机升温 5.9 °C。原生应用完全不绘制界面帧,耗电 86 mAh,升温 0.2 °C。同样的工作只用了一半的电量。

在 Galaxy S24+ 上观看实时共享屏幕 10 分钟的耗电量(mAh)

  • 最初的 Flutter 版本168 mAh
  • 原生 Cliqer Remote86 mAh
一台手机,每个版本测试一次。这是一次严谨的实地测试,而非实验室基准测试。

原生应用的体积也更小:iPhone 应用连同内置的 Apple Watch 应用为 10.8 MB,Android 手机版为 5.8 MB。各平台的详细介绍见适用于 iPhone、iPad 和 Apple Watch 的 Cliqer Remote和适用于 Android 和 Wear OS 的 Cliqer Remote。

我们尚未测量桌面应用相对于第 2 版的耗电情况,而且插着电源的电脑与握在温热手中的手机是完全不同的问题。在桌面端,请留意 Studio 状态栏中的 GPU 和 CPU 数值。

原生的代价,以及不变的部分

坦诚算一笔账。原生意味着我们要维护一个 Mac 应用和一个 Windows 应用,并且每项功能都要测试两遍。Cliqer 3 需要 macOS 15 或更高版本,或 Windows 11,因此 Windows 10 将继续使用上一版桌面应用。部分功能取决于平台:Keynote 控制仅限 Mac,vMix 控制仅限 Windows。v3 概览提供了完整的对照表。

不变的部分:您的房间、链接、登录和许可证。演讲者依然可以从浏览器或 Cliqer Remote 加入,无需安装任何东西,存放幻灯片的电脑依然运行 Cliqer 桌面应用。同一版本中的新内容:用于舞台的 Cliqer Timer,以及演讲者提词器中介绍的 Studio 提词器。

这对您意味着什么

如果您是演讲者,房间的使用方式一如既往,只是点击更快、手机更凉,桌面应用也遵循您的系统规范。如果您负责制作,Studio 现在拥有真正的输出、真正的录制和备份,Mac 上的零拷贝视频路径,带插件和路由的浮点音频引擎,以及 Studio 8K 和 Enterprise 上的 10 位和 HDR 画面。如果您在比较各种工具,我们已经公允地写了对比文章:Cliqer 与 vMix、与 Ecamm Live 和与 Barco E2,更多细节请见对比中心和 vMix 功能对比。

原生是一个关于「负载之下由谁掌控」的决定。我们的答案是操作系统、GPU 以及一个由我们自己编写和测量的引擎,而不是浏览器引擎。这就是 Cliqer 3。立即下载并在免费试用中进行一次彩排,或查看价格页面,了解哪个方案适合您的演出。

下载 Cliqer 3

适用于 macOS 和 Windows 的原生桌面应用,附带免费试用。

Cliqer Studio

输入、场景、转场、输出以及热备份。

Cliqer Live

以低于 220 毫秒的延迟向观众推流,内置于 Studio。

Cliqer Remote 应用

适用于 iPhone、iPad、Android 和您手表的原生应用。

常见问题

cliqer 3native appsrustperformancelatencyndistudioengineering

由Cliqer Team撰写

我们打造了 Cliqer,这款互联网遥控器正在全球各地的舞台、教室和会议室中使用。

用 Cliqer 掌控您的下一场活动

任意幻灯片,任意手机,随时随地。桌面应用托管房间,演讲者只需打开链接。

继续阅读

更多产品动态,助力您的下一场活动

A presenter holds a phone remote: one half seen through a thermal camera glowing hot, the other half cool in mint stage light
产品动态

我们为何抛弃 Flutter 应用,基于 Rust 核心原生重建 Cliqer Remote

我们用 Flutter 构建了 Cliqer Remote,在真实手机上实测后,又基于同一个 Rust 核心原生重建:耗电减半,不再发热。这里是数据与经验。
A dedicated server rack glowing mint in a dark data hall
产品动态

我们为何将 Cliqer 的实时服务迁离 Cloudflare(以及为何我们依然是它的粉丝)

在 Cloudflare 边缘运行的四个月:哪些地方出了问题,我们为应对构建了什么,以及 Cliqer 为何如今运行在我们自己的专用服务器上。
A software engineer reviewing a video latency graph on a monitor in a dimly lit office
产品动态

我们如何将屏幕共享提速四倍

将 Cliqer 屏幕共享延迟从两秒多降至约半秒,背后的工程故事。
简报

赶在您的下一场活动之前,抢先获取下一篇指南

为演讲者、AV 团队和活动团队提供实用指南,以及真正重要的 Cliqer 版本更新。绝无垃圾邮件,一键即可退订。