谷歌云直播:Live Stream API 使用方法全解析
一、谷歌云直播:一个被低估的托管式直播服务
直播技术正在重塑内容分发的方式。从大型体育赛事到企业内部分享,从游戏直播到在线教育,实时视频流已经深入各行各业。当企业决定自建直播平台时,面临的现实问题是:实时转码需要大量计算资源,自适应码率输出涉及复杂的打包逻辑,全球分发需要强大的网络基础设施——这些能力单独搭建的成本极高。
谷歌云直播(Google Cloud Live Stream API)正是在这个背景下推出的托管服务,于2022年6月正式GA。从技术定位上看,Live Stream API 是一个完全托管的直播视频处理服务,负责接收直播信号、实时转码为多种清晰度、打包成标准流媒体格式,并输出到存储中供分发。
自建转码集群需要管理编码器部署、处理故障切换、应对流量突增、优化转码参数——这些工作占据了开发团队大量精力。Live Stream API 将这些底层复杂性完全抽象掉,团队只需通过 API 创建输入端点、配置频道参数、启动和停止频道,剩下的全部由 Google Cloud 管理。
二、核心架构:Input、Channel 与 Output 的三层模型
理解谷歌云直播的架构,需要把握三个核心概念:Input(输入端点)、Channel(频道)和 Output(输出存储)。
Input:直播信号的入站通道
Input 是编码器推送直播流的目标端点。创建 Input 后,API 会返回一个推流地址——可能是 RTMP 地址或 SRT 地址。推流软件(如 OBS、FFmpeg)或硬件编码器将视频流推送至该地址,Live Stream API 便开始接收原始信号。Input 支持配置备份输入流以实现冗余,当主输入出现故障时可自动切换。
Channel:转码与打包的加工中心
Channel 是整条直播管道的核心——它定义了输入流如何被转码、打包成什么格式、输出到哪里。一个 Channel 关联一个 Input,并配置转码规格(即码率阶梯),将一路输入信号实时转换为多路不同分辨率、不同码率的输出流。
Channel 还支持一系列运行时事件:插入广告标记、静音或取消静音、切换输入源、插入备用画面(Slate)等。Slate 功能在输入流出现技术问题时尤其实用——可以用预设的图片或视频替代主内容,避免观众看到黑屏或花屏。
Output:持久化存储与分发源站
转码完成后的视频切片和播放列表文件,会被写入 Cloud Storage 存储桶。这是整个架构中的关键设计决策:输出不直接推给 CDN,而是先落盘到存储。这样做的好处显而易见——存储充当了源站角色,CDN 从存储拉取内容进行缓存分发。同时,存储在 GCS 中的直播切片天然具备持久化能力,可以轻松实现直播转点播(Live-to-VOD)功能。
这套三层模型的设计逻辑清晰:Input 负责接收、Channel 负责处理、Output 负责存储与分发——各司其职,相互解耦。
三、推流协议选择:RTMP 还是 SRT?
在推流协议选择上,谷歌云直播提供了 RTMP_PUSH 和 SRT_PUSH 两个选项。官方文档明确建议:如果条件允许,优先使用 SRT 协议。
RTMP 是直播行业最成熟的协议,兼容性极广,几乎所有编码器和推流软件都支持。但它的短板也很明显——基于 TCP 传输,在网络丢包时会出现延迟累积和画面卡顿。
SRT(Secure Reliable Transport)则是一个更现代的协议,提供了丢包恢复、前向纠错、支持多个音频基本流、更高的带宽利用率等能力。简单来说,在公网环境下,SRT 的弱网对抗能力远优于 RTMP。
选择建议:如果推流端网络环境稳定(如专线或高质量宽带),RTMP 足以胜任;如果推流端位于公网环境、网络质量不可控,建议优先选用 SRT 以保障直播稳定性。
四、完整操作流程:从零搭建谷歌云直播
以下是通过 Live Stream API 搭建直播流的完整步骤。
步骤一:准备工作
首先登录 Google Cloud 账户。新用户可获得300美元免费额度用于测试和部署。安装并初始化 Google Cloud CLI。
步骤二:启用 Live Stream API
运行以下命令启用 Live Stream API:
gcloud services enable livestream.googleapis.com
启用 API 需要 Service Usage Admin IAM 角色(roles/serviceusage.serviceUsageAdmin)。
步骤三:创建 Cloud Storage 存储桶
创建一个 Google Cloud 存储桶,用来存放直播流转码后的切片和播放列表文件。
步骤四:创建 Input 输入端点
创建直播推流端点,即 Input Endpoint。调用时需在配置文件中注明推流类型(RTMP 或 SRT)。创建成功后,API 会返回一个推流地址,格式类似 rtmp://[IP]/live/[UUID]。
步骤五:创建 Channel 频道
创建直播频道配置文件,其中包含输入端点、输出存储桶以及转码配置等信息。转码配置定义了码率阶梯——例如将输入流同时转码为 720p 和 270p 两个清晰度输出。
步骤六:启动频道并推流
创建完成后启动频道。如果调用成功,直播频道已准备就绪,可以开始推流和拉流了。
使用 FFmpeg 向推流地址推送测试流:
推流成功后,存储桶中会生成 main.m3u8 播放列表文件,以及多个子目录分别存放不同码率的转码输出切片和播放列表。每个子目录保留最新的35个切片文件(约70秒),更老的切片会被自动删除。
步骤七:配置 CDN 加速分发
为了给直播流观看加速,可以配置 Cloud CDN,在边缘节点缓存直播切片,并将其源站指向直播转码输出存储桶。
注意:如果直播流每2秒生成一个新切片,直播的播放列表文件应不缓存或缓存 TTL 不超过2秒;切片文件可以缓存更长时间。在默认配置中,播放列表的缓存标头是 no-store,切片 TS 文件的缓存 TTL 是3600秒。
五、转码配置与码率阶梯设计
转码配置是 Channel 创建中最核心的参数设计。Live Stream API 支持将一路输入信号实时转换为多路不同分辨率、不同码率的输出流。
视频编码参数
H.264 是当前支持的视频编码格式。码率设置需遵循以下约束:
标清分辨率(低于720p):码率不超过 3 Mbps
高清分辨率(≤1080p):码率不超过 15 Mbps
超高清分辨率(≤2160p):码率不超过 25 Mbps
音频编码参数
支持的音频编码格式包括 AAC、AC3、MP2 和 MP3。
输出格式
Live Stream API 支持将直播流打包为 HLS(HTTP Live Streaming)和 MPEG-DASH 两种主流自适应码率流媒体格式。HLS 在苹果生态和移动端有更好的兼容性,MPEG-DASH 则在更广泛的设备和浏览器中适用。实际生产中可以同时输出两种格式,覆盖更广的终端设备。
六、播放与分发:让观众看到直播
推流和转码完成后,需要让终端用户能够观看直播。
播放器选择
支持 HLS 和 MPEG-DASH 的播放器均可播放谷歌云直播输出的流。常用播放器包括 VLC、Google Shaka Player 等。
将存储桶根目录的 main.m3u8 文件公开访问地址拷贝下来,即可在 HLS 播放器中播放。
CDN 分发优化
Media CDN 通过将经常访问的内容缓存到更靠近最终用户的位置、在更靠近客户端的位置终止连接、重用与源站的连接,以及采用现代网络协议来降低延迟。对于直播场景,Media CDN 提供了针对超低延迟设计的优化请求路径。
配置 Media CDN 时需注意:将 GCS 存储桶设置为源站,配置 Edge Cache Service。直播流的缓存策略需根据切片生成频率精细调整,避免播放列表被过度缓存导致观众看到旧内容。
七、应用场景与注意事项
典型应用场景
谷歌云直播适用于多种实时视频场景:大型体育赛事直播、企业内部分享与培训、游戏直播、在线教育、电商直播带货等。
一个典型的案例是体育实况直播与多路解说员画面的分发。Live Stream API 的托管特性让这类高并发、高要求的场景得以低成本快速落地。
配额与限制
使用 Live Stream API 需注意以下配额限制:
每个项目每区域最多同时运行10个频道
每个项目最多创建20个 Input 端点
API 请求速率:每分钟6000次
操作请求:每分钟每区域1200次
成本考量
Live Stream API 按转码视频时长、分辨率和区域计费。此外还需支付 Cloud Storage 存储费用和 CDN 流量费用。具体价格以 Google Cloud 官方定价页面为准。
谷歌云直播是一个将复杂直播技术栈封装为简洁 API 调用的托管服务。Input 接收信号,Channel 完成转码与打包,Output 将结果落盘存储——三层架构各司其职,配合 Media CDN 实现全球加速分发。对于希望快速搭建稳定直播能力的技术团队而言,这套方案大幅降低了自建直播系统的门槛与运维成本。
关于上海汪远信息科技有限公司
上海汪远信息科技是国内深耕多年的综合型多云服务合作商,业务覆盖阿里云、腾讯云、华为云、天翼云、火山云、微软云、谷歌云、亚马逊云八大主流公有云平台。公司现有全职员工500人,八大云平台全年综合销量突破20亿人民币,累计服务超100万合作客户,累计助力企业部署云服务器近1亿台。其中谷歌云年销量达5000万美金,是谷歌云头部一级代理商。通过上海汪远信息科技开通谷歌云服务可享受8.5折优惠或15%返点。公司在香港设有分支机构,专门服务于国际云业务。行业经验10年以上,团队架构完善,具备承接大、中、小型企业规模化上云项目的完整能力。
常见问题解答
问:谷歌云直播支持哪些推流协议?
答:支持 RTMP_PUSH 和 SRT_PUSH 两种协议。官方建议优先使用 SRT,其在公网环境下的弱网对抗能力更强。
问:Live Stream API 的计费方式是什么?
答:按转码视频时长、分辨率和区域计费。此外还需支付 Cloud Storage 存储和 CDN 流量费用。
问:直播流可以同时输出 HLS 和 MPEG-DASH 吗?
答:可以。Live Stream API 支持同时将直播流打包为 HLS 和 MPEG-DASH 两种格式,覆盖更广泛的终端设备。
问:单个项目能同时运行多少个直播频道?
答:每区域最多同时运行10个频道,每个项目最多创建20个 Input 端点。
问:直播切片文件会永久保存在存储桶中吗?
答:不会。每个子目录默认保留最新的35个切片文件(约70秒),更老的切片会被自动删除。
问:推流中断后观众会看到什么?
答:可以配置 Slate 备用画面功能。当输入流出现技术问题时,系统会自动用预设的图片或视频替代主内容,避免观众看到黑屏。



