【发布时间】:2021-09-13 16:57:18
【问题描述】:
场景:
使用 AWS Lambda (Node.js),我想处理来自 S3 (> 1GB) 的大文件。 /tmp fs 限制为 512MB 意味着我无法在那里复制 S3 输入。 我当然可以增加 Lambda 内存空间,以便读取文件。
- 我是否将内存缓冲区传递给 ffmpeg? (node.js,怎么样?)
- 或者....我应该只创建一个 EFS 挂载点并将其用作转码暂存器吗?
【问题讨论】:
-
您知道 Lambdas 有 15 分钟的时间限制吗?转码视频可能需要更长的时间,除非您只是重新混合或转码音频。
-
ffmpeg 可以使用 http/https URLs 作为输入,因此至少对于问题的输入端,您可以使用预签名链接。 ffmpeg 也可以输出到标准输出,但是对于许多容器来说这是有问题的。除非您使用 ECS 或 EFS 之类的东西,否则您将有一个痛苦的世界。
-
连接并获取短片 - 我说转码时说错了。回复:管道..那么,将一个巨大的缓冲区传递给 child_process.spawnSync() 作为输入?我想得越多,EFS 就越是明智的选择。
-
要记住的一件事是确保之后清理 EFS 共享,因为我不认为它被视为临时存储。
标签: node.js amazon-web-services ffmpeg aws-lambda amazon-efs