node.js - AWS lambda 层调用说 opt/ffmpeg 不是目录

标签 node.js ffmpeg aws-lambda aws-lambda-layers

我按照本教程制作 ffmpeg 一个 lambda 层 https://www.serverless.com/blog/publish-aws-lambda-layers-serverless-framework
我使用 spawnsync 在我的目录中运行 ls 并且 opt 目录为空,因此 ffmpeg 没有触发。
关于我可能做错了什么的任何指示?
我使用 node.js12.x 作为无服务器框架的运行时。

最佳答案

如果你添加

spawnSync( 'ls', ["/opt"], { stdio: "inherit" });
在您的 lambda 代码中,您可能会看到 ffmpeg 执行文件直接位于/opt 下。
这取决于您如何压缩 ffmpeg 文件夹。使用上面的命令,您可以看到/opt 文件夹结构,以了解调用 ffmpeg exe 的路径。
spawnSync(
  '/opt/ffmpeg',
  [
    '-i',
    `/tmp/${inputFileName}`,
    "-f",
    "gif",
    `/tmp/${outputFileName}`
  ],
  { stdio: "inherit" }
);
这个对我有用。

关于node.js - AWS lambda 层调用说 opt/ffmpeg 不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63554390/

相关文章:

node.js - 有没有更好的方法在 typescript 中编写这个递归方法

javascript - 在运行时添加路由 (ExpressJs)

node.js - 如何将 Node 的 child_process.exec() 与 Promise 一起使用

python - 在 AWS 上 Elasticsearch {"Message":"User: anonymous is not authorized to perform: es:ESHttpGet"}

node.js - 刷新 token 如何处理 POST 路由

c++ - OpenCV2.4 从视频中捕获帧可能存在的错误

ffmpeg - 如何将水印添加到 rtmp 流?

c++ - FFMpeg:从 AV_SAMPLE_FMT_S16 重采样到 AV_SAMPLE_FMT_FLTP 将比特率除以 2

node.js - 通过 http 对 aws 资源的请求进行正确签名

amazon-s3 - 如何从cloudformation/boto3访问S3 Bucket的名称?