打开智能电视里的 YouTube,如果翻到版本信息一栏,多数设备上显示的依然是 25.lts 这一代代号。很少有普通观众会意识到,屏幕上那个流畅播放 4K 视频的界面,背后正经历十年来最彻底的一场底层大手术:开源咨询机构 Collabora 联合 Google YouTube 团队,历时一年多在晶晨芯片与 RDK 平台上交付了名为 Chrobalt 的首个第三方参考平台。

这绝非一次常规的版本升级,而是一次撤退式的重构。Google 彻底放弃了自研多年的排版引擎,将客厅端的核心渲染管线全面并入 Chromium 主干。

告别自造轮子:轻量化引擎的技术债总清算

十多年前,电视机顶盒与智能电视的硬件配置极其贫瘠,内存常常以兆字节计,CPU 算力微弱。在那个年代,想把桌面端动辄吃掉数个 G 内存的 Chromium 搬进电视,完全是天方夜谭。

机顶盒内部主控芯片与电路板细节特写
机顶盒内部主控芯片与电路板细节特写

Google 当年的解法是自研一套极度精简的 HTML5/CSS 专用引擎 Cobalt。它剥离了普通浏览器里庞杂的文档规范,只保留流媒体播放必须的最小子集,再通过名为 Starboard 的硬件抽象层与各家芯片对接。凭借这一架构,YouTube 几乎攻占了全球所有能连网的屏幕。

但现代 Web 标准的演进速度超出了单一团队的维护能力。CSS 新特性层出不穷,安全补丁日新月异,独立维护一套排版引擎演变成了无底洞似的技术债。既然跑不过标准委员会,唯一的出路就是认输回归主干。

于是就有了代号 Chrobalt 的架构跃迁。这套方案在技术演讲中被称为 Chrobalt,但 Google 官方技术文档与代码仓库中并未对外启用这个花哨名词,而是严谨地将其命名为基于 Starboard 18 的 Cobalt 27 LTS。

YouTube 客厅端渲染架构演进对比 经典架构:Cobalt 25 LTS 专用子集 Web 应用层 自研轻量渲染引擎(维护代价沉重) Starboard 15(273 个专有 API 接口) 全新架构:Cobalt 27 LTS (Chrobalt) 标准化现代 Web 应用层 Chromium M138 剪裁版 + Blink 运行时 Starboard 18(117 个标准 POSIX 接口)

所谓的 Chrobalt,本质上并不是把桌面版 Chrome 搬进电视,而是移除了所有桌面 UI 组件与冗余沙箱的多进程 Blink 嵌入式运行时。上游直接跟随 Chromium M138 等现代分支,下游依然保留电视专属的媒体管道与 Evergreen 动态热更新机制。

抽象层刮骨削肉:Starboard 18 的标准化突围

把巨舰塞进泥沼,第一刀必须切向底层的软硬件连接处。

过去芯片供应商要接入 YouTube,必须实现一套极其繁复的硬件抽象层。旧版 Starboard 15 定义了多达 273 个专有 API,不仅涵盖视音频解码,连基础的线程调度、套接字网络甚至内存申请都造了一套私有接口。每一次芯片迭代,固件团队都要在这些私有接口里摸爬滚打。

专有接口是技术护城河的幻觉,真正的产业规模只认通用标准。

到了 Cobalt 27 LTS,底层抽象层迎来了激进的化简。Starboard 18 彻底抛弃了这些专有重复建设,接口数量从 273 个锐减至 117 个,精简幅度达到 57%。

原本生造出来的底层调用全部让位给标准的 POSIX 设施,系统线程直接走 pthread,系统调用直接对接标准 libc,网络与加密全面归拢到 OpenSSL。

Starboard 硬件抽象层接口削减指标 273 Starboard 15 接口总数 大量私有进程/内存胶水层 117 Starboard 18 接口总数 全面拥抱 POSIX 标准接口 -57% 专有接口削减幅度 研发移植维护负担骤降

在砍掉超过一半专有包袱的同时,Starboard 18 针对现代客厅视听的关键瓶颈精准打上了补丁:

  • 正式引入 SbMediaCanChangeType 动态编解码切换接口,让播放列表在不同分辨率与编码格式切歌时不卡顿黑屏。
  • 提前新增了 AV2 视频编码定义,为未来的超高清流媒体格式铺路。
  • 将 Evergreen 运行时独立热更新槽位由原来的 3 槽精简为 2 槽,进一步为寸土寸金的存储空间减负。

这一刀切下去,看似是在做减法,实际上是把智能电视芯片厂商从无休止的适配苦役中解放了出来。


2GB 内存上的刀尖起舞:真机环境下的极限博弈

虽然架构愿景美好,但物理定律不会凭空消失。现代 Chromium 是出了名的内存吞噬兽,而客厅生态面对的现实却残酷得多。

Google 官方钦定的 Cobalt RDK 验证参考机型是 Amlogic AH212 机顶盒,这台设备搭载的晶晨 S905X4 芯片是一颗标准的四核 Cortex-A55 处理器,主频 2GHz,集成 Mali-G31 MP2 图形核心。

最致命的瓶颈在于物理内存:AH212 标配仅有 2 GB RAM 与 16 GB eMMC。更严峻的是,Linux 内核设备树为了保障 4K 60fps 的硬解流畅度与图形渲染,预先划扣了庞大的专用多媒体连续内存缓冲区。留给用户空间应用程序调度的实际可用内存,远远低于 2 GB。

要在这种极限资源下运行 Chromium M138 并稳定通过苛刻的 YouTube Test Suite (YTS) 4K 认证,Collabora 的工程改造几乎是在毫米级尺度上抠资源:

模块类别核心工程改动解决的关键痛点
底层构建升级 RDK Yocto 工具链以支持现代化 C++ 规范满足 Chromium 上游编译依赖
图形管道接入 Chromium Ozone 抽象层并对接硬件 DRM消除桌面 X11/Wayland 冗余开销
系统整合适配 RDK7 模块化插件架构与内存沙箱严防 Chromium 多进程引发系统 OOM
自动化测试重构 Rust 实现的 DAB 适配器驱动自动化认证保证 4K 播放与低延迟输入达标

通过对 Chromium 进行极限裁切,并借由 YTS 全自动化测试套件在设备自动化总线上的反复压测,这套方案最终在低成本硬件上跑通了 4K 超高清视音频播放与低延迟遥控交互。

  • 风险.对于存量极度低端、仍在使用老旧 Linux 内核与过时 C 运行库的运营商机顶盒,强行升级 Cobalt 27 LTS 将面临 toolchain 重构和内核补丁不兼容的巨大工程风险。

这一落地不仅给三星、LG 等头部电视巨头树立了迁移标杆,更重要的是向全球广电与 IPTV 运营商证明:即便是百元级成本的 S905X4 方案,也完全装得下现代化的 Chromium 内核。

商业诉求与版本陷阱:客厅入口的控制权再加固

梳理这桩工程合作,能看清各方极其务实的算盘。

对 Google 而言,这是一场一举两得的集权:甩掉自研渲染引擎技术债,研发力量彻底收拢到 Chromium 主线;同时,借助保留下来的 Evergreen 机制,Google 绕过了电视厂商漫长而低效的 OTA 固件更新周期,继续掌控着全球数以亿计客厅大屏的 YouTube 运行时控制权。

对终端设备商而言,摆在眼前的迁移路线却隐藏着不少陷阱。

  • 建议.设备厂商应严格遵循官方迁移指南,明确跳过 26 EAP 这类早期预览版本,直接基于 Starboard 18 推进 27 LTS 认证。

同时必须厘清正式发行版本的编号规则:根据 Google 规范,以 10 的倍数递增的版本才是具备正式认证资质的稳定发布版(如 27.lts.10、27.lts.20);而此前释出的 27.lts.1 至 27.lts.3,实质上仅是搭载 Evergreen 7.3.2 的候选版本,绝不能直接作为商用量产机型的出厂固件。

技术的演进往往就是这般具有讽刺意味。当年为了摆脱大而全的桌面标准,工程师们花费十年心血在嵌入式设备上精雕细琢出一座名为 Cobalt 的轻量化象牙塔;而当浪潮退去、标准压顶之时,唯一的生路依然是把那套曾被视作累赘的庞大体系,重新打磨拆解,塞回方寸之间的小小芯片里。