数字标牌中的“无头”是什么意思?
在传统的标牌系统中,Web 应用是控制界面,播放器跟随它。在无头系统中,控制权在 API 里。任何客户端都调用同一个控制平面,由控制平面决定每个播放器播放什么,播放器负责渲染并回报。控制台只是又一个客户端,屏幕要继续播放,无需任何客户端保持打开。
| 关注点 | 无头 CMS | 无头标牌平台 |
|---|---|---|
| 包含内容 | 结构化内容条目 | 媒体、播放列表、现成应用、你自己的应用以及键值状态 |
| 谁来渲染 | 你自己的前端或播放器 | 每块屏幕上的播放器 |
| 排程与接管 | 屏幕一侧的独立系统 | 服务器决定每块屏幕播放什么 |
| 屏幕已显示的证明 | 屏幕一侧的独立系统 | 截图与播放记录 |
| 适用场景 | 同样的内容也可以供给网站或应用 | 屏幕就是渠道 |
可编程指由代码控制播放内容。程序化通常指对户外屏幕广告位的自动化购买,播放器页面另有介绍。
由流水线驱动的发布看板
平台团队希望把发布流水线放在咖啡机旁的电视上:每一步发生时即时显示,最新的在最前,出现失败时显示一行红色。流水线、其作业编号和主机均为演示内容。运行是真实的:2026 年 10 月 26 日,在 screenRIG 的预发布环境中,图片由播放器在代替电视的浏览器窗口中绘制。流水线的每个阶段各运行一次小脚本:
- 流水线已启动。main,3 个提交。
- 测试通过。412 项测试,耗时 3 分 10 秒。
- 部署到生产环境失败。web-2 上的健康检查超时,正在回滚。
- 回滚完成。web-1 和 web-2 已恢复正常。
第三步之后,错误是最大的一行,先前的步骤连同其时间一并列出,页脚统计这一小时内的事件和错误数。第四步之后,回滚位于最上方,失败的部署位于其下方。


流水线的脚本做什么?
智能体的部分很简短,只发生一次。它创建一个活动动态看板,给它一个第一行以免页面为空,并将其放到屏幕上。然后它把一个脚本交给流水线。脚本读取看板及其修订版,把新行放在最前,并且仅在期间无人写入时才写回:
# $url is the board's address and $auth carries your token.
# 1. Read the board and its revision (the ETag).
etag=$(curl -sS -D - -o current.json -H "$auth" "$url" | awk 'tolower($1) == "etag:" { print $2 }' | tr -d '\r')
# 2. Write the board back with the new row first. A stale revision is refused, and the script reads again.
curl -sS -X PUT "$url" -H "$auth" -H "Content-Type: application/json" -H "If-Match: $etag" -H "Idempotency-Key: board-$(date -u +%s%N)" --data @next.json流水线如何知道屏幕已经收到?
它不会轮询。项目的事件流可以重放,流水线可以在写入的同时读取它。对于失败的部署,该流依次携带了写入、更改,然后是播放器自己的报告,说明它已将该修订版应用到该页面(时间为 UTC,仅保留事件和修订版):
03:43:47.501 kv.updated revision 5 written
03:43:47.505 screen.card_data_changed revision 5
03:43:49.306 screen.card_data_applied revision 5, page "board"写入被接受 1.8 秒后,播放器就报告了该修订版。必须等到屏幕显示失败之后才能继续的作业可以等待最后那一行,不在意的作业可以忽略它。屏幕事件在监听流上免费,重新连接后会从上一个游标继续。
两个写入方,一个修订版
两个作业可以同时写入。携带过期修订版的写入会被拒绝,拒绝信息会说明当前是哪个修订版,因此不会有人覆盖较新的行。脚本会重新读取并重试,最多三次。
无头数字标牌中哪些留在服务器端?
在没有任何客户端连接时仍须持续运行的一切。播放器负责渲染,服务器负责决策。
| 关注点 | 服务器做什么 |
|---|---|
| 排程 | 决定每块屏幕播放什么:先看它的接管,否则取第一个成立的广告活动,否则取第一个与屏幕本地时间匹配的排程条目,否则取分配的播放列表。切换会在时间边界后约一分钟内生效。 |
| 活动 | 在日期和每周时间窗口成立期间,将带标签设备群中的每块屏幕切换到同一个播放列表,各按各自的时钟计时。 |
| 接管 | 将一个播放列表置于某块屏幕或带标签的设备群上,优先于广告活动、排程和分配,然后自行结束。 |
| 显示电源 | 保存每台显示器何时开启。播放器在设备上评估排程,因此离线时也能继续工作。 |
| 播放证明 | 记录每一次图片或视频的可见开始播放。CSV 导出最多涵盖 31 天。 |
| 设备健康 | 播放器会定期报告其健康状况,并在显示器连接或电源发生变化时立即报告。 |
标签选定一组设备,因此一条命令即可触达带有该标签的每块屏幕。
什么时候我仍然需要控制台?
控制台只是又一个客户端,有些工作更适合由人来做。
- 审核。以“提议”访问权限登录的智能体,或要求审核的项目,会把更改发送到“审核”页面。由人员批准、请求更改或拒绝,在此之前不会有任何内容到达屏幕。
- 访问。“访问”页面列出每个智能体、已连接的应用和服务客户端,人员可在此终止其中任何一个。
- 人员和项目。邀请和项目设置由人员负责。
常见问题
无头数字标牌与 API 优先的数字标牌是一回事吗?
它们是从两个角度描述同一种设计。API 优先指先设计 API,每个客户端都使用它。无头则指运行屏幕不需要任何特定的界面。
运行无头数字标牌需要开发人员吗?
不需要。智能体凭一句话就能运行它,项目要求审核时,由人员批准它提议的内容。当某个系统需要自行向屏幕写入内容时,开发人员再添加上面那样的脚本。
我可以把内容保存在其他系统中吗?
可以。脚本读取该系统,并把数值写入看板。屏幕渲染服务器保存的内容。
无头方案可以驱动哪些播放器?
十二种:Web 播放器、Android 和 Google TV、Amazon Signage Stick、Apple TV、macOS、iPhone 和 iPad、Windows、Linux、Raspberry Pi、LG webOS Signage、Samsung Smart Signage (Tizen) 和 BrightSign。播放器指南提供了安装步骤。
无头数字标牌免费吗?
screenRIG 免费,屏幕数量不限。付费套餐增加商业工具、更多成员、可以联系的真人支持、治理以及合同条款。查看定价;开发者页面展示每个接口。
写入你的第一行
阅读REST API 参考了解脚本发出的调用,或者免费开始,让你的智能体来编写脚本。