如何在AWS Lambba中导入fluent-ffmpeg?

时间:2019-09-26 12:29:49

标签: ffmpeg aws-lambda serverless-framework fluent-ffmpeg

我正在尝试在AWS Lambda中使用fluent-ffmpeg,但无法正确设置它。在我的index.js顶部:

import ffmpeg from "fluent-ffmpeg";

但是它始终是不确定的。

ffmpeg === undefined

我正在使用Serverless,并将ffmpeg包括在内。

serverless.yaml

functions:
  createGifFromVideo:
    handler: src/services/createGifFromVideo/index.handler
    layers:
      - { Ref: FfmpegLambdaLayer }
    events:
      - sns: arn:aws:sns:us-east-1:${self:custom.accountId}:NewVideoPostContentTopic-${self:provider.stage}

layers:
  ffmpeg:
    path: src/layers

package.json

{
  "name": "createGifFromVideo",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "private": true,
  "dependencies": {
    "fluent-ffmpeg": "^2.1.2"
  }
}

根据我的判断,似乎已正确构建了上载的lambda。 Webpack通过合并fluent-ffmpeg构建文件,并将其链接到ffmpeg层。

我可以加载其他软件包。只是流利的ffmpeg回来了undefined

在文档中,它提到将FFMPEG_PATHFFPROBE_PATH作为环境变量进行传递。这些在图层上必要吗?

很高兴看到一个有效的配置。

1 个答案:

答案 0 :(得分:0)

事实证明问题出在环境变量上。在将FFmpeg用作图层时,假设它位于名为ffmpeg的目录中,请使用以下环境变量:

FFMPEG_PATH: /opt/ffmpeg/ffmpeg
FFPROBE_PATH: /opt/ffmpeg/ffprobe