本页面介绍 Transcoder API 的技术概览,包括功能、术语和有用的概念。Transcoder API 实现 REST 和 RPC API,可让您在 Google Cloud 中提交、监控和管理转码作业。要使用 Transcoder API 提交作业,您首先需要将媒体资源上传到 Cloud Storage。处理作业后,Transcoder API 会将生成的媒体保存回 Cloud Storage。
特性
Transcoder API 支持以下功能:
- 不同容器格式的输出,包括 MPEG-4 (MP4)、基于 HTTP 的动态自适应流式传输 (DASH,也称为 MPEG-DASH) 和 HTTP Live Streaming (HLS)
- 以不同的比特率和分辨率输出,包括仅音频输出
- 转换为高动态范围 (HDR) 格式
- 以编程方式优化视频输出,包括:
- 配置低层级编码参数,例如比特率
- 使用综合的编辑列表重新合成现有媒体内容
- 将作业模式设为低延迟 Interactive 模式或批处理模式
- 指定音频音量标准化
- 配置输出视频的加密以支持数字版权管理和内容保护
- 插入广告关键帧以允许视频播放器客户端插入广告
- 使用生成的视频帧精灵表创建缩略图。
- 创建作业模板以保存和重复使用自定义或复杂的配置,从而对作业进行转码
如需详细了解 MP4 和 MPEG-DASH 标准,请参阅动态图像专家组网站。如需详细了解 HLS 标准,请参阅 HTTP Live Streaming。
支持内容加密的容器
下表显示了支持内容加密的容器。
流式传输协议 | 容器 | DRM 系统 | 加密方案 |
---|---|---|---|
HLS | TS | ClearKey | aes128 |
HLS | TS | FairPlay | sampleAes |
HLS | fMP4 | FairPlay | 仅限 mpegCenc cbcs |
MPEG-DASH | fMP4 | Widevine | mpegCenc cenc 或 cbcs |
MPEG-DASH | fMP4 | PlayReady | mpegCenc cenc 或 cbcs |
访问权限控制
Transcoder API 访问权限控制模型基于 Google 的 Identity and Access Management。借助 IAM 的精细权限,您可以完全控制由谁使用媒体数据执行哪些操作。
限制
下表展示了每个转码作业的限制。
作业限制 | |
---|---|
输入宽度上限 | 4096 像素 |
输入高度上限 | 4096 像素 |
最大输出宽度 | 4096 像素 |
输出高度上限 | 2160 像素 |
输出总大小 | 400 GB |
EditList 时长上限 | 24 小时 |
视频流数上限 | 70 |
音频流数上限 | 50 |
文本流数上限 | 50 |
mux 流数上限 | 100 |
清单数上限 | 100 |
精灵表数上限 | 10 |
概念
本部分介绍了有关视频文件以及它们如何与 Transcoder API 一起使用的重要概念。
视频文件的组件
每个视频文件都有一个容器,即整个文件的封装容器。Transcoder API 使用 MuxStreams 定义容器。每个容器包含一组 ElementaryStreams,用于定义文件的视频、音频和字幕文本轨道的编码。视频和音频是使用编解码器进行压缩的。
在以下示例中,视频使用 H.264 进行压缩,音频使用 AAC 进行压缩。这两者都放置在 MP4 容器中。
图 1.视频文件的组件(左侧)和 MP4 示例文件(右侧)。
流式传输协议结构
对于流式传输媒体,内容提供商以多种比特率(以每秒千比特为单位测量)对相同内容进行编码。然后,提供商会生成指向具有不同比特率的不同文件的清单文件。流式媒体播放器使用清单文件选择适当的文件,然后一次拉取几秒钟的视频。每个比特率可以是单个文件或多个短文件,具体取决于播放器支持的内容。
通常对不同分辨率的媒体进行编码以针对不同的比特率。例如,较低的比特率以标清 (SD) 而非高清 (HD) 进行编码。比特率、分辨率和编解码器的集合称为自适应比特率 (ABR) 阶梯。流式内容提供商可以根据 CDN 费用、用户设备类型、区域内带宽和其他因素调整自己的阶梯。
图 2. 流式传输协议结构的组件(顶部)和 HTTP Live Streaming (HLS) 实现的示例(底部)。
术语
本部分提供了有关如何使用 Transcoder API 的有用术语的术语库。
广告插播时间点
广告插播时间点是一种在媒体播放之前或播放期间播放的短广告。Transcoder API 支持作业配置中的广告插播时间点关键帧。Transcoder API 不会插入或播放广告,也不会停止媒体播放;视频播放器客户端负责处理关键帧。
Atom
Atom 是定义视频元数据和位置的基础数据结构。视频具有包含不同类型 Atom 的复杂嵌套层次结构,包括音频、修改和文本 Atom。
音频 Atom
音频 Atom 将音频从基本流映射到修改列表。
编解码器类型和配置文件
在为视频流选择编解码器时,您需要指定编解码器类型(例如 H.264)和配置文件(例如默认的 high
配置文件)。
容器
容器是一个封装容器,用于描述多路复用流中不同组件(包括媒体文件和元数据)之间的关系。Transcoder API 支持 MP4、MPEG-DASH 和 HLS 容器格式。
修改 Atom
“修改 Atom”定义了您要在修改列表中组合的流的各个片段的开始和结束偏移量。
修改列表
修改列表将一系列修改定义为针对转码作业生成文件或清单的时间轴。
基本流
基本流是输入文件(例如音频、视频或字幕文本轨道)的编码。您必须先封装基本流,然后才能将基本流映射和共享到不同的输出格式。
熵编码
熵编码是 Transcoder API 支持的一种无损压缩形式。配置作业时,您可以指定上下文自适应可变长度编码 (CAVLC) 或上下文自适应二进制解析编码 (CABAC) 熵编码器。
Job
作业是使用 Transcoder API 管理工作的基本单元。当您将作业提交到 Transcoder API 时,它会在被称为区域的地理位置进行异步处理。您可以列出和管理某个区域的所有作业。
作业的生命周期分为三个步骤:准备、转码和打包。
- 准备
- 从 Cloud Storage 下载输入
- 分析输入
- 验证输入
- 译码
- 对输入运行转码操作
- 套餐
- 拼接输入
- 多路复用输入
- 将输出上传到 Cloud Storage
作业配置
作业配置表示您在创建作业并将其提交到 Transcoder API 时可以自定义的多种设置。您可以指定配置设置,如修改列表以及在输出清单中插入广告插播时间点标记的位置。您可以创建可重复使用的作业配置,作为在 Google Cloud 区域中使用的作业模板。
作业模式
Transcoder API 支持两种作业模式:交互式和批量。
交互模式是默认的作业模式。如果您希望尽快开始作业处理,或者希望更精细地控制先执行哪些作业,请使用此模式。在此模式下,并发作业数量配额用于控制同时运行的作业数量。达到此配额后,您尝试启动的任何作业都会被拒绝。
使用批处理模式提交许多作业,对于这些作业,处理延迟时间不像在默认互动模式下提交的作业那样至关重要。在此模式下,您可以为作业指定作业处理优先级。以批量模式提交且具有相同优先级值的作业会被放入先进先出队列,并在等待运行时处于 PENDING
作业状态。在此模式下,批量待处理作业数配额会控制队列中作业的数量。达到此配额后,您尝试启动的所有作业都会被拒绝。作业在执行时会转换为 RUNNING
状态。批处理并发作业数配额用于控制并发运行的作业数量。
您可以同时使用这两种模式。一种模式不会优先于另一种模式。如需详细了解如何设置作业模式,请参阅以批处理模式创建作业。
作业模板
默认情况下,Transcoder API 会应用名为 preset/web-hd
的预设模板来填充作业配置。此作业配置会生成以下输出文件:
manifest.m3u8
:HLS 媒体流的主播放列表。此文件包含对输出的高清 (HD) 变体和输出的标清 (SD) 变体的播放列表的引用。media-hd.m3u8
:高清变体的播放列表media-hd0000000000.ts
:高清视频片段文件
media-sd.m3u8
:标清变体的播放列表media-sd0000000000.ts
:标清视频片段
manifest.mpd
:MPEG-DASH 媒体流的播放列表。此文件包含对仅视频和仅音频的片段文件的引用。audio-only0000000000.m4s
:仅音频分段文件video-only-hd0000000000.m4s
:仅高清视频分段文件video-only-sd0000000000.m4s
:仅标清视频分段文件
sd.mp4
:独立的标清视频文件hd.mp4
:独立的高清视频文件
您可以创建和管理自己的自定义作业模板,并在创建作业时指定这些模板。
预处理
预处理是主转码开始之前发生的作业阶段。
预处理配置
预处理配置表示在作业转码阶段之前可以应用于视频的设置。您可以在此配置中应用剪裁或内边距。
速率控制模式
速率控制模式指示是使用固定速率因子 (CRF) 模式还是可变比特率 (VBR) 模式来处理作业。CRF 可确保处理的媒体资源保持一致的质量。VBR 可优化编码过程,减小处理的媒体资源的文件大小。对于流处理使用场景,请选择 VBR 速率控制模式。如果要进行归档,请选择 CRF 速率控制模式。
清单
清单是流向客户端的自动调节媒体流的可用内容和元数据的说明。在 Transcoder API 中,您可以将作业配置为输出带文件名的清单、多路复用流列表以及清单类型(必须为 HLS 或 MPEG-DASH)。
文本 Atom
文本 Atom 将基本流中的文本映射到修改列表。
文本流
文本流会对与视频关联的文本数据(例如字幕)进行编码。
后续步骤
- 试用快速入门。
- 了解如何完成特定的 Transcoder API 任务。