如何解决AWS Lambda:如何提供 ffmpeg 大文件?
场景:
使用 AWS Lambda (Node.js),我想处理来自 S3 (> 1GB) 的大文件。 512MB 的 /tmp fs 限制意味着我无法在那里复制 S3 输入。 我当然可以增加 Lambda 内存空间,以便读入文件。
- 我是否将内存缓冲区传递给 ffmpeg? (node.js,如何?)
- 或者....我应该制作一个 EFS 挂载点并将其用作转码暂存器吗?
解决方法
ffmpeg 处理文件,所以也许另一种选择是设置一个 unix 管道,然后用 ffmpeg 读取该管道,不断地用 s3 流馈送它。
但也许您想考虑将其作为 ECS 任务运行,您不会有时间限制,也没有相同的存储限制。但是,使用 Fargate 冷启动它需要 1-2 分钟,这可能是不可接受的?
,您可以使用 HTTP(s) 协议作为 ffmpeg 的输入。
Lambda 的最大内存限制为 10GB,我上次测试时来自 S3 的数据传输速度约为每秒 300MB。因此,如果您只有 1GB 的最大视频并且没有进行内存密集型转换,这种方法应该可以正常工作
ffmpeg -i "https://public-qk.s3.ap-southeast-1.amazonaws.com/sample.mp4" -ss 00:00:10 -vframes 1 -f image2 "image%03d.jpg"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。