此亚马逊云科技解决方案有何用途?
亚马逊云科技为您提供了一个通用的无服务器媒体解决方案架构。
作为示例,此方案利用 Amazon Lambda,实现了基于 FFmpeg 的转码功能,帮助您轻松的完成云端视频转码工作(如转换文件格式,转换视频编码,等),而无需配置和管理服务器。此方案附带简洁易用的的UI界面,您只需要轻松的在界面上进行配置参数,便可以轻松开启转码任务。
您可以基于此方案的架构或示例代码,在亚马逊云科技云端快速构建符合您应用场景的媒体解决方案。
亚马逊云科技解决方案概述
下图显示了此解决方案的架构,您可以联系我们的销售顾问获取方案的 Amazon CloudFormation 模版及部署手册。
架构描述
这个方案提供了一个通用的无服务器框架。
作为这个框架的使用案例,此方案提供了一个具有转码功能的演示 Demo。这个 Demo 是基于 Amazon Lambda 和 FFmpeg 软件实现的。用户可以通过UI界面或者命令行的方式设置转码的相关参数并开启创建转码任务。
当开启一个转码任务,前端通过 Amazon API Gateway 发起请求并由后端的 Lambda 函数进行处理。Lambda 函数会在 DynamoDB 中记录转码任务当前的配置。Lambda 函数会将当前转码任务的参数作为 Step Functions 的输入来启动一个转码的工作流。该工作流自动将视频文件进行分段,由多个 Lambda 函数并行的调用 FFmepg 功能,对分段视频进行进行转码。
当所有转码工作完成,另一个 Lambda 将使用 FFmpeg 将处理过的多个分段视频合并成一个完整视频,并将其放到 Amazon S3 上。
Amazon Lambda: 负责核心控制逻辑和转码逻辑
Amazon API Gateway: 处理前端的业务请求并转到后台 Lambda 处理
Amazon S3: 存储用户上传的原始视频,存储前端 WebUI 的代码
Amazon Step Functions: 维护一个视频转码工作流
Amazon EFS: 用来存放分段转码视频的结果,多个 Lambda 函数公用
Amazon CloudFront: 提高前端页面的访问速度
Amazon DynamoDB: 存储转码任务相关的参数和解决方案相关的配置参数
Amazon CloudWatch: 记录 Lambda 运行的日志