2020 年 6 月,Cloudflare TV 首次亮相:这是一个 24x7 全天播送的流媒体频道,话题主要围绕建设更加美好的互联网(以及为这个目标而奋斗的人),目前总共播出了 1,000 多期直播节目。今天我们很高兴地宣布,用于打造 Cloudflare TV 的技术也将开放给所有想要自己经营 24x7 流媒体网络的其他企业。但在此之前,先回顾一下我们自己是如何经营这一服务的。

我们从头说起。

从可以想到的每个角度来看,Cloudflare TV 最初都只是一个实验,我们希望通过它捕捉在彼此相隔甚远的人之间进行当面交流的缘分。不久之后,我们发现得到了一个特别的成果。Cloudflare 团队踊跃现身于幕前,展现各式各样的天赋与才能,他们也在过程当中享受愉悦与乐趣。Cloudflare TV 成为一个虚拟闲谈之地,迸发出现场电视节目的激情。

Cloudflare TV 的一个精彩之处是它的内容广度。自开办以来,CFTV 播出了 1,000 多期现场节目,内容涉及知名品牌客户与 VIP 嘉宾对话,以及游戏和 DJ 表演等。Cloudflare 的员工资源团队主持了数百期节目来介绍他们独特的经历,与新一代技术领导者分享丰富的建议。总的来说,我们邀请了 650 多名 Cloudflare 员工和见习生以及 500 多名外部嘉宾参与节目,其中包括 Intel 首席执行官 Pat Gelsinger、Gradient Ventures 董事 Bonita Stewart、Broadcom 首席技术官 Andy Nallappan 以及 Zendesk 高级副总裁 Christina Liu 等。

收看精彩节目,体验极客快乐:CFTV 蒙太奇

这里是 Cloudflare TV,所以我们节目的重点当然是技术内容,受众是各个领域的观众。当我们在 Cloudflare 博客上公布新的产品或协议时,当天也会在 CFTV 上推出直播节目,由编写新发产品代码的工程师进行分享。每一个星期,我们也会播出各种节目,介绍加密技术、学习如何编写代码,以及驱动 Cloudflare 覆盖全球 250 多个城市的网络的硬件。

不论您是刚听说 Cloudflare TV,还是早就成为忠实观众,我们都欢迎您访问刚发布的“探索”页面,那里可以找到许多最受欢迎节目的点播视频,例如产品与工程最新资讯、常青节目硅谷方格,以及介绍技术行业女性领袖的是的,我们能做到。您还可以浏览即将播出的直播栏目,并将它们轻松添加到日历中。

表明我们走上正轨、大有前途的一大证明是我们收到的反馈,不仅是观众的意见,也包括公司的反响,后者迫切想要知道我们使用哪一个平台来支持 CFTV。以前,我们的回报只有表达诚挚的谢意,但从今天开始,我们能够分享更加令人兴奋的东西了。

但首先,我们来看一看幕后。

制作堆栈

我们最初开办 Cloudflare TV 并不是从零开始的。我们探索了几个可用的方案,很快发现只有少数解决方案是为 24/7 线性串流而设计的,更少的方案仍需经过优化,才能由一个分散于全球各地的团队进行管理。幸运的是,在 Cloudflare 我们喜欢创造。

我们的工程师以惊人的速度构建了自己的系统,尽可能利用开源项目,同时发明尚不存在的事物。主要构成部分有:

  • Brave (BBC) — Brave 是一个开源项目,得名于高度描述性的 Basic Real-Time Audio Video Editor(基本实时音视频编辑器)的首字母缩写。它充当 Cloudflare TV 的总机,允许我们根据播送时间表从直播内容自动跳转到商业广告,再跳回到预录节目。按照 BBC 所说,Brave 的唯一问题是它是一个原型,自 2018 年起未曾更新过…
The CFTV Switchboard (Now streaming: Latest from Product & Engineering)
CFTV Switchboard(正在播送:产品与工程最新资讯)
  • Zoom — 在最初设计 Cloudflare TV 时,我们的最高指令是它必须要简单易用。如果主持人必须要安装浏览器插件或不熟悉的应用,我们就会失去很多机会,特别是外部嘉宾。Zoom 成为一个显而易见的答案,它具备 RTMP 广播功能,能够在 Cloudflare TV 上无缝推送实时内容。大多时候,参与 CFTV 节目就像加入 Zoom 会议一样简单。
  • Cloudflare Workers — 简单说来,没有 Cloudflare Workers,Cloudflare TV 就不会存在。Workers 是将平台的各个离散组件糅合在一起的粘合剂,处理身份验证验证和应用逻辑,将数据从后端安全地中继到前端,并在整个网站上穿插 SEO 优化等。它是我们首先想到的工具,通常也是我们唯一需要的工具。
  • Cloudflare Stream — 我们的内容库包含 1,000 多集节目,因此有大量资源需要管理。幸好 Stream 能够将它简化:节目上传后自动转码为适当的比特率,我们也在整个平台上使用 Stream 嵌入工具来驱动视频点播。我们也使用 Stream API 将节目录像传送到后端总机,以便与我们的直播节目无缝同步重播。
  • Cloudflare for Teams — Cloudflare TV 显然是面向公众的,但有一系列仪表板和管理接口只能由 Cloudflare 团队的选定成员访问。幸好我们有 Cloudflare for Teams 套件(包括 Cloudflare Access),可以轻松地设置自定义规则集,让一切得到妥善保护,而且没有笨拙的 VPN 或身份验证障碍。

我们得到工程师的一点帮助

我们从一开始便知道,只是主持人轻松使用 Cloudflare TV 尚不足够。它需要能够通过一个规模相对小的团队来运行,而且团队需要能够远程工作,大多数成员还要同时承担其他职责。

我们向 Cloudflare 的办公室和高管成员发出了特别呼吁,他们的职责因为疫情受到了巨大影响。他们全都挺身而出,担起 Cloudflare TV 制作人的角色,提供技术支持、安抚紧张情绪,并且协导我们的每一次直播。我们的成功离不开他们,那也不是我们希望的。

尽管如此,经营一家电视台牵涉到许多工作,我们别无他选,只有尽可能提高平台效率,自动化解决我们的痛点,并且开发直观易用的管理工具来支援我们的团队。以下总结了一些提高系统效率的关键因子:

Auto-Switcher — CFTV 的节目表每周(包括周末在内)包含数百个节目,如果需要手动切换,那就会障碍重重。幸运的是,系统基本上是自动运行的。这不是简单的播放列表:每一分钟,在 Cloudflare Workers 上运行的程序与 CFTV 后端同步,对节目录像和后续直播输入进行排队,删除属于已播节目的内容。即便我们休假一个星期,Cloudflare TV 也能继续正常播出。

Auto-Scheduler — 人工安排 CFTV 内容播出时间(每周超过 250 个时段),很快会从很有意思的活动变成有悖常理的任务。到第二周,我们就意识到必须寻找别的出路。Auto-Scheduler 随之诞生,我们可以选择任意时间窗口,填充上我们内容库中的录像,以填补直播时段之间的空档。

时段可以拖放、添加和移除,点击几下就行;只需不到一小时,一个人就能安排一整个星期的节目。Auto-Scheduler 智能循环节目库中的每一集内容,确保它们全部播出。而且,它还有很大空间进一步智能化。

Broadcasting Center — Cloudflare TV 的命脉是我们的直播时段,我们自然会花费许多时间来尽力改进主持人的体验。Broadcasting Center 是他们的基地:这个页面会针对每期节目的主持人自动加载,同时提供倒计时和其他工具。由于观众互动是直播节目与众不同的关键所在,它还提供了一个观众提问部分,其中包含一个观众来电功能,记录观众通过电话提出的问题并将其转为文字。

Broadcasting Center — Presenter View
Broadcasting Center — 主持人视图

此外,我们的 CFTV 制作人使用同一工具的管理视图,在每次直播开始前进行检查,确保媒体流能够清晰地传送进来。在必要时,他们可以利用一套管理控件进行故障排除,还可以处理观众的提问。

对于制作人和主持人,Broadcasting Center 提供了一个简单的控制面板来管理直播会话。这种易用性非常有利于通过一个精简团队使系统顺畅运行。

Broadcasting Center - Admin View
Broadcasting Center — 管理视图

有续集吗?当然。

我们之所以投入力量经营 Cloudflare TV,一个原因是它能充当一个不错的自我测试平台。我们不仅利用了众多 Cloudflare 媒体产品,而且在 24/7 线性内容的刺激下成为特别挑剔的客户,完全不接受时间限制或维护停机等随意束缚。

有鉴于此,我们将整合 Cloudflare 本周推出的一系列新技术,推出一个经过全面改造的 CFTV 平台,也就是 Cloudflare TV 2.0。具体包括:

  • 实时通信平台 — Cloudflare 在今天公布了由 WebRTC 支持的全新实时通信平台。不久之后,Cloudflare TV 将利用这个平台来处理我们的许多直播会话。CFTV 将继续支持 Zoom、OBS 和所有能够输出 RTMP 媒体流的其他应用程序,因为便利是帮助主持人与平台互动的一个首要支柱。但我们还有进步空间,借助 Cloudflare 的实时通信平台支持的自定义程序控制媒体流,将我们的创造力提升到新的高度。
  • Stream Live — CFTV 的后端服务器目前处理我们直播内容的视频编码,生成媒体流并中继到 video.js 嵌入插件中。将这种设置替换为 Stream Live 会产生诸多关键效益:首先,我们可以将视频编码卸载到 Cloudflare 的全球网络,从而提高速度、可靠性和冗余能力。其次,我们也能以不同比特率生成广播内容的多个渲染版本,从而能够提供为带宽有限的移动设备优化的媒体流,并且随着用户网络条件的变化而切换不同的比特率。
  • Stream Connect — 目前,收看 Cloudflare TV 的唯一途径是平台的主页,但我们没有理由不同时发布到 YouTube 等其他流行视频平台。Stream Connect 将成为我们后端混合器的主要端点,它将生成媒体流的多个副本,输出到 YouTube、主要广播频道和任意数量的其他平台。

我们也在奋力开发总机的全新实施,以提高可靠性、可扩展性和自定义性。这个总机将驱动 Cloudflare TV 2.0 的核心。

这不是一般的电视,而是 Cloudflare TV。

Cloudflare TV 2.0 将是平台的一大进步,利用我们一年来获得的见解由内而外重新架构系统,并且充分发挥 Cloudflare 网络的优势。另外,我们也将您考虑在内了:同样的技术将用于驱动 Cloudflare TV 即服务。

Cloudflare 的大多数产品都设计为能够从个人一直扩展到规模最大的企业。但这不包含在内。经营 24x7 流媒体网络需要花费许多时间和精力。虽然我们尽可能让它简单易用,它是一款面向企业而设计的产品,适合那些愿意像 Cloudflare 一样作出承诺的企业。如果您是其中之列,我们会告诉您,经营流媒体服务会带来难以置信的回报,我们也愿意让更多企业能做到。

感兴趣?请填写此表;如果您是合适的企业,我们会与您联络,并与您一起打造您自己的流媒体服务。

另外,请不要错过 Stream Live 和全新的实时通信平台。没有任何理由不马上开始构建。