Amazon Elastic Transcoder

【2025-11-13 已停止】曾将 S3 上的视频 / 音频转换为适用于各种设备的格式的转码服务。后继为 AWS Elemental MediaConvert

概述

【已停止服务】Amazon Elastic Transcoder 已于 2025 年 11 月 13 日停止提供。后继为 AWS Elemental MediaConvert。以下是提供期间的介绍。Amazon Elastic Transcoder 曾是一项基于云的转码服务。它将存储在 S3 中的视频和音频文件转换为可在智能手机、平板电脑、PC、智能电视等各种设备上播放的格式。在作业中指定输入文件和预设(输出格式的设置模板),并进行到 H.264、VP8 等编解码器的转换以及分辨率和比特率的设置。处理以管道为单位进行管理,也支持转换为 HLS(HTTP Live Streaming)格式。

停止提供与迁移目标

Amazon Elastic Transcoder 已于 2025 年 11 月 13 日停止提供。AWS 官方博客将 AWS Elemental MediaConvert 列为迁移目标。MediaConvert 的输出支持 H.265(HEVC)/ AV1 等编解码器以及质量定义的可变比特率(QVBR)(MediaConvert 用户指南)。Elastic Transcoder 的管道与 MediaConvert 的队列相近,两项服务都有预设(迁移博客)。HLS 的自适应比特率分发通过 Apple HLS 输出组来配置。本页作为记录提供期间规格的历史资料 + 迁移指南予以保留。

管道与预设的设计

以下是提供期间(至 2025 年 11 月 13 日停止提供为止)的规格。Elastic Transcoder 的处理由管道、作业和预设 3 个概念构成。管道是关联输入 S3 存储桶和输出 S3 存储桶的处理通道,曾有按用途(例如:高优先级的生产用、低优先级的批处理用)创建多个管道的用法。预设是将输出格式的详细设置模板化的产物,定义编解码器、分辨率、比特率、帧率、音频设置等。AWS 提供的系统预设按设备和用途准备,使用方式是通过 ListPresets 获取列表并在作业中指定。在自定义预设中,设置比特率、关键帧的最大间隔、H.264 的配置文件(baseline / main / high)等。缩略图也在同一预设中设置,大致以固定秒数的间隔生成 JPG 或 PNG 图像(SDK 参考)。按 MediaConvert 的概念来理解时,与管道相近的是队列。不过,队列不绑定特定的 S3 存储桶,因此可以用同一个队列处理输入存储桶不同的作业。在 Elastic Transcoder 中,预设对每个输出都是必需的,且不能被覆盖。而在 MediaConvert 中,可以通过 API 覆盖各个编码参数,也有不使用预设而将全部设置写入作业请求的方法。如果希望连同输入设置和输出组设置在内重复使用整个作业,则使用作业模板,另外也提供默认的系统预设和作业模板。

HLS 转换与自适应比特率分发的构建

以下是提供期间的规格。Elastic Transcoder 曾支持转换为 HLS(HTTP Live Streaming)格式。HLS 是将视频分割为短片段并通过清单文件(.m3u8)管理的格式,可以在 iOS、Android、Web 浏览器等广泛的设备上播放。为了实现自适应比特率流式传输,从同一输入视频生成多个比特率的 HLS 输出,并用主播放列表将这些输出捆绑在一起。比特率的档位根据分发目标用户的网络质量来决定,并准备多个级别。播放器根据观看者的网络带宽切换比特率。分发配置的一个例子是通过 CloudFront 缓存分发输出到 S3 的 HLS 片段。HLS 的内容保护方式只有 AES-128(SDK 参考)。在 MediaConvert 中,可以将相同的配置重新构建为基于 CMAF(Common Media Application Format)分段 MP4 的 HLS / DASH 输出。CMAF 输出的视频编解码器有 AV1、AVC、HEVC、VP9 等(MediaConvert 用户指南)。HLS 播放列表的版本不是手动选择,而是自动切换到所启用功能要求的版本。

作业管理与事件驱动架构的设计

以下是提供期间的设计示例。Elastic Transcoder 的作业以异步方式执行,状态通知通过 SNS 主题接收。将 SNS 主题关联到管道后,会在作业的开始、完成、错误、警告各事件时发布通知。事件驱动架构的一个例子是以向 S3 上传视频为触发器启动 Lambda,自动创建 Elastic Transcoder 的作业。也有在 Lambda 中获取输入视频的元数据(分辨率、时长)并加入选择预设的逻辑的例子。当时可以构建这样一系列管道:用另一个 Lambda 接收作业完成后的 SNS 通知,将转码结果的元数据保存到 DynamoDB,并向前端返回可播放的 URL。作为错误处理,也有这样的设计:转码失败时投入重试队列(SQS),如果重试规定次数后仍然失败,则移到死信队列进行人工确认。按 MediaConvert 的概念来理解时,通知的入口会改变。MediaConvert 将作业状态的变化作为 EventBridge 的事件发送(MediaConvert 用户指南)。这些事件再从那里路由到 Lambda、SQS、Step Functions、Systems Manager Automation 等。也可以进行这样的控制:通过事件的筛选模式,按附加到作业的用户元数据与完成状态的组合来缩小范围,只启动特定的 Lambda。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享