挑战
固定容量的编码基础设施要么过度配置(成本高昂),要么配置不足(速度缓慢):
- 编码工作负载高度可变且不可预测
- 在内容发布期间,高峰期的流量可能达到平时的100倍
- 在空闲时段,全天候运行专用编码服务器成本高昂
- 任务失败需要自动检测和重试,无需人工干预
我们的解决方案
我们使用 AWS Lambda 触发器和 AWS MediaConvert 实现了一个无服务器编码管线,用于弹性、按使用量付费的视频处理。
架构
- 触发器:监控 S3 上传事件的 AWS Lambda 函数
- 编码:使用合作伙伴特定任务模板的 AWS MediaConvert
- 消息:使用 ActiveMQ/STOMP 进行异步任务状态更新
- 监控:NestJS 编码器后端跟踪任务进度
- 存储:使用 AWS S3 存储输入/输出资产
管线流程
- S3 事件 - 视频上传触发 Lambda 函数
- 任务配置 - Lambda 读取合作伙伴配置文件并构建 MediaConvert 任务
- 提交 - MediaConvert 任务以适当的输出设置提交
- 进度跟踪 - STOMP 消息将状态中继到编码器后端
- 完成 - 输出资产存储在 S3 中,元数据在 MongoDB 中更新
- 错误处理 - 失败的任务排队等待指数退避重试
主要特点
- 零闲置成本 - Lambda 和 MediaConvert 仅按实际使用量收费
- 弹性伸缩 - 处理 1 到 1000+ 个并发编码任务
- 合作伙伴模板 - 每个合作伙伴预配置的 MediaConvert 任务模板
- 事件驱动 - S3 事件自动触发编码工作流
- 全面监控 - 任务状态、持续时间和错误跟踪
成果
技术栈
caseStudyDetail.more 案例研究
探索更多我们的技术实施案例
SCTE-35 广告标记信令与媒体预告片插入管道
一家流媒体公司需要一个强大、自动化的管道,用于将 SCTE-35 广告标记注入直播和 VOD 流中,并能将宣传预告片(前贴片、中贴片和后贴片)精确地插入指定位置——从而实现跨 FAST 频道、直播活动和点播内容库的变现。
利用 AWS 媒体服务通过 SRT 传输 FAST 频道流媒体
一家媒体公司需要使用 Secure Reliable Transport (SRT) 协议,为其 FAST 频道建立可靠、低延迟的贡献源,从而能够通过不稳定的互联网连接,从远程工作室、云播放系统和联合发行合作伙伴摄取高质量内容。
常见问题
MicrocosmWorks 设计了一种分段处理架构,其中 Step Functions 编排管道:Lambda 函数将源视频分割成片段,AWS MediaConvert 处理实际转码而不受 Lambda 超时限制,最终的 Lambda 拼接输出。这种混合方法在支持任意时长的视频的同时,保持了无服务器成本模型。
与运行专用 EC2 编码实例相比,MicrocosmWorks 测得突发性视频处理工作负载的成本降低了 70-85%。该无服务器管道在空闲时零成本,并在高峰期可扩展到数百个并发作业,AWS MediaConvert 的按分钟计费消除了为峰值容量预置资源的需要。
MicrocosmWorks 为 AWS Step Functions 配置了每一步的重试策略和指数退避,确保失败的转码步骤自动重试,而无需重新启动整个管道。每个阶段将中间输出写入 S3,因此恢复从上一个成功的检查点继续,而不是从源文件重新处理。
MicrocosmWorks 通过在关键 Lambda 函数上使用预置并发和 MediaConvert 预留转码槽来缓解冷启动,从而针对准实时用例优化了管道。对于实时工作流,管道实现了从上传到交付的 2-5 分钟端到端延迟,适用于片段提取和精彩集锦分发。
MicrocosmWorks 以 $25-$45/小时的费率构建无服务器视频基础设施,一个完整的基于 MediaConvert 的管道,包括 Step Functions 编排、S3 生命周期管理和监控,通常需要 250-400 开发小时。该架构的按使用付费模型意味着客户只需支付与其实际处理量成比例的 AWS 费用。
