我正在使用AWS lambda方法从mp4视频文件到mp3的媒体提取来评估我的需求。
主要要求是一旦新的mp4文件可用或由自定义应用程序保存在某个S3存储桶中,Lambda函数将被触发并将元数据发送到Dynamo DB,然后lambda函数将提取音频并将其存储在另一个S3桶。
如下所述,有四个选项可用于设计Lambda函数:
例如,使用Java plus JAVE编码器库来完成工作(使用 在lib / jar中嵌入ffmpeg二进制文件
将NodeJS与带有媒体编码容量的npm包一起使用 (包括spawn ffmpeg过程)
将NodeJS与AWS弹性转码服务一起使用
将Java与AWS弹性转码服务一起使用
上面哪个选项会降低资源(内存/ CPU使用等级)的成本?
我猜这两个初始场景听起来更业余但可能更便宜。但我怀疑在内存和CPU资源方面,NodeJS或Java之间的选择使用是否会影响由于内存或lambda函数执行任务所需的时间而导致的丢失量。
我需要关注这些方面,我们希望尽可能少花费AWS Lambda用于此类任务吗?
在NodeJs或Java之间进行选择无关紧要?
我是否应该考虑使用弹性转码服务而不是lambda函数中的自定义库?
感谢您的帮助。
答案 0 :(得分:3)
费用实际上取决于您的吞吐量和内容的长度。请注意,目前Lambda
有execution timeout and other limits。
我认为Java选项实际上比Node.js方法更强大。我可能会使用Elastic Transcode
,因为它可以管理,可能更容易开发和维护。
答案 1 :(得分:1)