数字标牌

无头数字标牌:由脚本、流水线或智能体运行屏幕

在无头数字标牌中,屏幕要更新,无需保持任何东西打开:智能体、脚本或流水线通过 API 更新播放内容,由播放器渲染。这里是一条 CI 流水线用 curl 向电视写入内容,没有打开控制台,也没有人在看。

更新于

  1. 你

    把我们的发布流水线放到平台团队的电视上。流水线会在每一步发生时发布它(启动、测试、部署、回滚),最新的排在最前,出现失败时显示一行红色。它将通过带 curl 的 shell 脚本来完成,整个过程没有人,也没有智能体参与,所以请一次性设置好看板,并告诉我脚本需要什么。

  2. 智能体

    看板已经在平台团队的电视上了:最新的步骤排在最前,失败显示为红色一行。脚本需要三样东西,API 地址、看板的 id 和令牌,我已经为你写好了。在我的测试中,失败的部署在脚本发布后大约两秒就出现在了屏幕上。

免费开始查看定价

01数字标牌中的“无头”是什么意思?

数字标牌中的“无头”是什么意思?

在传统的标牌系统中,Web 应用是控制界面,播放器跟随它。在无头系统中,控制权在 API 里。任何客户端都调用同一个控制平面,由控制平面决定每个播放器播放什么,播放器负责渲染并回报。控制台只是又一个客户端,屏幕要继续播放,无需任何客户端保持打开。

关注点无头 CMS无头标牌平台
包含内容结构化内容条目媒体、播放列表、现成应用、你自己的应用以及键值状态
谁来渲染你自己的前端或播放器每块屏幕上的播放器
排程与接管屏幕一侧的独立系统服务器决定每块屏幕播放什么
屏幕已显示的证明屏幕一侧的独立系统截图与播放记录
适用场景同样的内容也可以供给网站或应用屏幕就是渠道

可编程指由代码控制播放内容。程序化通常指对户外屏幕广告位的自动化购买,播放器页面另有介绍。

02由流水线驱动的发布看板

由流水线驱动的发布看板

平台团队希望把发布流水线放在咖啡机旁的电视上:每一步发生时即时显示,最新的在最前,出现失败时显示一行红色。流水线、其作业编号和主机均为演示内容。运行是真实的:2026 年 10 月 26 日,在 screenRIG 的预发布环境中,图片由播放器在代替电视的浏览器窗口中绘制。流水线的每个阶段各运行一次小脚本:

  1. 流水线已启动。main,3 个提交。
  2. 测试通过。412 项测试,耗时 3 分 10 秒。
  3. 部署到生产环境失败。web-2 上的健康检查超时,正在回滚。
  4. 回滚完成。web-1 和 web-2 已恢复正常。

第三步之后,错误是最大的一行,先前的步骤连同其时间一并列出,页脚统计这一小时内的事件和错误数。第四步之后,回滚位于最上方,失败的部署位于其下方。

发布看板:一行红色的“错误”行,“部署到生产环境失败”,附带健康检查消息,旁边是“测试通过”和“流水线 4182 已启动”
第 3 步之后。该行的级别决定其颜色:信息、成功、警告或错误。
回滚之后的发布看板:一行绿色的“成功”行,“回滚完成”,旁边是失败的部署和先前的步骤
第 4 步之后。页脚仍统计过去一小时内的一个错误。

03流水线的脚本做什么?

流水线的脚本做什么?

智能体的部分很简短,只发生一次。它创建一个活动动态看板,给它一个第一行以免页面为空,并将其放到屏幕上。然后它把一个脚本交给流水线。脚本读取看板及其修订版,把新行放在最前,并且仅在期间无人写入时才写回:

终端
# $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

04流水线如何知道屏幕已经收到?

流水线如何知道屏幕已经收到?

它不会轮询。项目的事件流可以重放,流水线可以在写入的同时读取它。对于失败的部署,该流依次携带了写入、更改,然后是播放器自己的报告,说明它已将该修订版应用到该页面(时间为 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 秒后,播放器就报告了该修订版。必须等到屏幕显示失败之后才能继续的作业可以等待最后那一行,不在意的作业可以忽略它。屏幕事件在监听流上免费,重新连接后会从上一个游标继续。

05两个写入方,一个修订版

两个写入方,一个修订版

两个作业可以同时写入。携带过期修订版的写入会被拒绝,拒绝信息会说明当前是哪个修订版,因此不会有人覆盖较新的行。脚本会重新读取并重试,最多三次。

06无头数字标牌中哪些留在服务器端?

无头数字标牌中哪些留在服务器端?

在没有任何客户端连接时仍须持续运行的一切。播放器负责渲染,服务器负责决策。

关注点服务器做什么
排程决定每块屏幕播放什么:先看它的接管,否则取第一个成立的广告活动,否则取第一个与屏幕本地时间匹配的排程条目,否则取分配的播放列表。切换会在时间边界后约一分钟内生效。
活动在日期和每周时间窗口成立期间,将带标签设备群中的每块屏幕切换到同一个播放列表,各按各自的时钟计时。
接管将一个播放列表置于某块屏幕或带标签的设备群上,优先于广告活动、排程和分配,然后自行结束。
显示电源保存每台显示器何时开启。播放器在设备上评估排程,因此离线时也能继续工作。
播放证明记录每一次图片或视频的可见开始播放。CSV 导出最多涵盖 31 天。
设备健康播放器会定期报告其健康状况,并在显示器连接或电源发生变化时立即报告。

标签选定一组设备,因此一条命令即可触达带有该标签的每块屏幕。

07什么时候我仍然需要控制台?

什么时候我仍然需要控制台?

控制台只是又一个客户端,有些工作更适合由人来做。

  • 审核。以“提议”访问权限登录的智能体,或要求审核的项目,会把更改发送到“审核”页面。由人员批准、请求更改或拒绝,在此之前不会有任何内容到达屏幕。
  • 访问。“访问”页面列出每个智能体、已连接的应用和服务客户端,人员可在此终止其中任何一个。
  • 人员和项目。邀请和项目设置由人员负责。

08 常见问题

常见问题

无头数字标牌与 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 免费,屏幕数量不限。付费套餐增加商业工具、更多成员、可以联系的真人支持、治理以及合同条款。查看定价;开发者页面展示每个接口。

09写入你的第一行

写入你的第一行

阅读REST API 参考了解脚本发出的调用,或者免费开始,让你的智能体来编写脚本。

10相关

11 更多主题

screenRIG 免费。

安装官方插件,配对屏幕,你的智能体就能向它发布内容。

免费开始查看定价 →