我有一个 S3 存储桶,其中包含数以万计的音频文件和数以千计的视频文件,我需要通过 MediaConvert 进行转置。
在我继续编写一个可以作为 lambda 运行以迭代存储桶并启动所有 MediaConvert 作业的函数之前,是否有一种不那么费力的方法来实现相同的目标?
我有一个 S3 存储桶,其中包含数以万计的音频文件和数以千计的视频文件,我需要通过 MediaConvert 进行转置。
在我继续编写一个可以作为 lambda 运行以迭代存储桶并启动所有 MediaConvert 作业的函数之前,是否有一种不那么费力的方法来实现相同的目标?
AWS Elemental MediaConvert 本身不具备该功能;但是,有一个 GitHub 项目利用 CloudFormation 模板创建一个堆栈,用于通过 Lambda 函数模拟 S3 和 MediaConvert 之间的“Watchfolder”处理。
从项目的 README.md 文件中:
工作流程演练
- Ingest 用户将视频上传到 S3 中的 WatchFolder 存储桶 /inputs 文件夹。只有添加到 /inputs 文件夹的文件才会触发工作流。
- s3:PutItem 事件触发一个调用 MediaConvert 来转换视频的 Lambda 函数。
- 转换后的视频由 MediaConvert 存储在 S3 中。
- 当转换作业完成时,MediaConvert 会发出带有作业状态的 aws:mediaconvert 作业状态更改事件类型 CloudWatch 事件。
- COMPLETE 和 ERROR 状态事件触发 SNS 向订阅者发送通知。
由于 Lambda 是由 s3:PutItem 事件触发的,这意味着您可能必须将这数以万计的资产移动到 /inputs 文件夹中,这可能会产生成本。