我正尝试在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/layerspackage.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_PATH和FFPROBE_PATH作为环境变量传递。这些都有必要加一个层吗?
如果能看到一个有效的配置,我会很感激。
发布于 2019-10-03 08:06:45
问题原来是环境变量的问题。在使用FFmpeg作为层时,假设它位于名为ffmpeg的目录中,请使用以下环境变量:
FFMPEG_PATH: /opt/ffmpeg/ffmpeg
FFPROBE_PATH: /opt/ffmpeg/ffprobehttps://stackoverflow.com/questions/58116840
复制相似问题