HDMI-CEC 的工作原理
CEC 是每根 HDMI 线中的一条共用线路,与视频信号相互独立。接在上面的设备会互相发送简短的消息:“待机”“我是当前信号源”“电源状态?”。这条线路在 HDMI 中是强制具备的,但设备不一定要实现 CEC,所以它在这台电视上可用,换一台就未必可用(维基百科)。
对标牌来说,有两条消息最重要:
- One Touch Play(image view on)。播放器声明自己是当前信号源,电视随即开机并切换到它的输入。
- System Standby。播放器通知电视进入待机。
HDMI-CEC 的其他名称
电视厂商会在菜单里给 CEC 换个名字。如果找不到“CEC”,就找找该品牌的叫法(维基百科):
| 品牌 | 菜单中的名称 |
|---|---|
| Samsung | Anynet+ |
| LG | SimpLink |
| Sony | BRAVIA Sync、BRAVIA Link 或 Control for HDMI |
| Philips | EasyLink |
| Panasonic | VIERA Link、HDAVI Control 或 EZ-Sync |
| Sharp | Aquos Link |
| Toshiba | CE-Link 或 Regza Link |
| Hisense、Vizio | CEC |
在电视的设置中开启,通常位于“常规”“外部设备”或 HDMI 下。
HDMI-CEC 为什么会失灵
多数“CEC 坏了”的反馈都可归结为以下原因之一:
- 电视上没有开启。很多电视出厂时默认关闭 CEC,恢复出厂设置或固件更新也可能再次将其关闭。
- 中间夹了别的设备。HDMI 切换器、分配器、延长器和 AV 功放常常会阻断或改写 CEC。请把播放器直接插到电视上。
- 电视在深度待机时不响应唤醒。有些电视在最低功耗模式下会关闭 CEC。请查找“快速启动”或“网络待机”设置,并在信任它之前完整测试一个通宵周期。
- 另一台设备抢走了电视。同一台电视上的回音壁、游戏机或第二台播放器可能发出自己的 CEC 指令,把输入切换走。
- 播放器无法发送 CEC。很多流媒体棒和 Android 盒子根本不允许应用发送 CEC 指令。
唯一可靠的测试,是设置一次关闭和一次开启,放一个通宵,早上看结果;或者让智能体提供截图和播放器报告的电源状态。
哪些播放器可以通过 HDMI-CEC 开关电视
在 screenRIG 上,每个播放器都会声明自己可用的显示器电源方式,智能体在行动之前会先读取这些信息。摘自播放器指南:
| 播放器 | 它如何开关显示器 |
|---|---|
| Raspberry Pi 和 Linux | 通过 CEC 设备和 cec-ctl 的 HDMI-CEC、ddcutil 能识别显示器时的 DDC/CI、面板背光,或屏幕黑屏 |
| BrightSign | 通过 BrightSign shell 的 HDMI-CEC,或屏幕黑屏 |
| Android(托管,设备所有者) | 背光、特权安装上的 HDMI-CEC,或屏幕黑屏 |
| Windows | 显示器响应时用 DDC/CI、关闭显示器,或屏幕黑屏 |
| ChromeOS 自助终端(Web 播放器) | 通过 USB 串口适配器连接显示器的 RS-232 控制接口,适用于 Samsung、LG、NEC 和 Philips 显示器 |
| 来自 Google Play 的 Android、Amazon Signage Stick、Apple TV、Samsung Tizen、LG webOS | 屏幕黑屏 |
屏幕黑屏不是 CEC:屏幕变黑,但面板仍然通电。它依然能在非营业时间隐藏内容,并且适用于所有播放器。
播放器会报告实际达到的电源状态,所以你能区分“电视已关闭”和“我们要求电视关闭”。
按排程开关屏幕
显示器排程最多可设置 16 个显示器开启的时段,按屏幕所在时区计算。所有时段之外,显示器进入待机。播放器在设备上执行排程,因此离线时也能照常运行。你可以用一句话告诉智能体,也可以用 CLI 设置:
{"enabled": true, "windows": [{"days": ["mon", "tue", "wed", "thu", "fri"], "start": "07:00", "end": "19:00"}, {"days": ["sat"]}]}screenrig screen display-schedule set --tag Cafe --file hours.json对于一次性安排,比如临时加场的活动,screen display 会覆盖排程,直到排程的下一个分界点,或持续指定的时长:
screenrig screen display --tag Lobby --power on --for 3hCLI 参考涵盖显示器排程、覆盖设置,以及每个播放器报告的健康状况。
不止开关:无需上门就能修好屏幕
关闭屏幕只是一半。另一半是不用爬梯子就让卡住的屏幕恢复。声明了相应能力的播放器可以接受以下指令:
- 重启设备,适用于 Raspberry Pi 和 Linux 自助终端安装、BrightSign、Windows 和托管 Android。发给离线屏幕的重启指令会排队等待最长 24 小时,屏幕恢复在线后执行。
- 重启播放器应用,无需重启设备。
- 清除缓存,保留配对和设置,并重新下载内容。
定时重启(例如每晚按屏幕所在时区的 04:00 重启)在每个套餐中都可用。你也不必盯着控制台才能知道出了问题:每个项目默认在屏幕离线满 10 分钟时给其所有者发一封邮件,通知还可以监视显示器断开、设备过热、播放器反复崩溃,或屏幕画面空白或卡住。
常见问题
数字标牌应该开启还是关闭 HDMI-CEC?
开启——如果你的播放器可以使用它,并且你希望在非营业时间关闭屏幕。如果同一台电视上的其他设备总在切换输入或唤醒屏幕,则关闭它。
HDMI ARC 和 HDMI-CEC 是一回事吗?
不是。ARC(Audio Return Channel,音频回传通道)把声音从电视回传给回音壁或功放。CEC 传送的是控制指令。它们常常出现在同一个菜单里,接在 ARC 上的回音壁通常也通过 CEC 接收音量指令,但它们是不同的功能。
怎么知道我的电视有没有 HDMI-CEC?
在电视的设置中查找 CEC 或该品牌对它的叫法(见上表)。菜单里有,就说明电视实现了 CEC。然后在安装屏幕之前,用你的播放器测试一下。
Amazon Signage Stick 能关闭电视吗?
使用 screenRIG 时,Amazon Signage Stick 按在设备上运行的排程让画面黑屏,离线也照常执行。这不是 CEC 指令,所以面板仍然通电。如果需要关闭电视本身,请使用 Raspberry Pi、Linux 电脑或 BrightSign 播放器。