【问题标题】:How to import fluent-ffmpeg in AWS lambda?如何在 AWS lambda 中导入 fluent-ffmpeg?
【发布时间】:2019-09-26 12:29:49
【问题描述】:

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

import ffmpeg from "fluent-ffmpeg";

但它始终是未定义的。

ffmpeg === undefined.

我正在使用无服务器并将 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 层。

我可以加载其他包。返回的只是 fluent-ffmpeg undefined

从文档中提到将FFMPEG_PATHFFPROBE_PATH 作为环境变量传递。这些对层来说是必要的吗?

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

【问题讨论】:

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


    【解决方案1】:

    问题原来是环境变量的问题。使用 FFmpeg 作为层时,假设它位于名为 ffmpeg 的目录中,请使用以下环境变量:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-01
      • 2019-08-08
      • 2019-02-14
      • 1970-01-01
      • 2017-05-15
      • 2019-02-16
      • 2020-08-20
      • 2021-11-01
      相关资源
      最近更新 更多