如何在aws lambda机器上安装ffmpeg?

Mar*_*ein 2 ffmpeg amazon-web-services aws-lambda

我正在尝试在使用ffmpeg的aws lambda上运行节点js脚本.为此,我需要在机器上安装ffmpeg.

我看过文档,但我找不到如何连接到运行lambda的机器.

pet*_*ich 10

这在 Python 中对我有用:

  1. 从这里获取 ffmpeg 的静态构建,正如@Xeroxoid 已经提到的
  2. 解压 tar -zxvf ffmpeg-release-amd64-static.tar.xz
  3. 从文件夹中获取文件ffmpeg(和可选ffprobe)。
  4. 将裸 ffmpeg 文件(不带子文件夹)与您的 lambda 代码放在同一文件夹中。
  5. cd 进入这个文件夹并压缩 zip -r -X "../archive.zip" *
  6. 将压缩文件上传到 AWS Lambda。

将正确的文件路径设置为 ffmpeg,如下所示:

FFMPEG_STATIC = "/var/task/ffmpeg"
import subprocess
subprocess.call([FFMPEG_STATIC, '-i', input_file, output_file])
Run Code Online (Sandbox Code Playgroud)


eri*_*ikW 7

要在 AWS Lambda 中尽快使用 ffmpeg,只需使用可在以下位置找到的预构建 lambda 层:https : //serverlessrepo.aws.amazon.com/applications/arn : aws : serverlessrepo : us -east-1 :145266761615:applications~ffmpeg-lambda-layer

只需部署这一层,然后附加到您的功能。要调用 ffmpeg,只需在 lambda 函数中使用 '/opt/bin/ffmpeg' 路径。

该层在 Git 中维护:https : //github.com/serverlesspub/ffmpeg-aws-lambda-layer


Xer*_*oid 6

您还可以在此处找到由这位酷哥主持的ffmpegfor 的预编译版本aws-lambdahttps : //johnvansickle.com/ffmpeg/

(我和x86_64构建一起去)

提示:不要忘记设置正确的+x权限为二进制文件ffmpeg,也许ffprobe如果需要的话。


Mar*_*k B 5

您永远不会连接Lambda运行的"机器".该函数没有运行单个机器,直到第一次调用该函数时才会部署该函数.Lambda在一个或多个容器中运行,这些容器在请求进入时按需创建和删除.您必须在Lambda的部署包本身中包含任何类似ffmpeg的内容,因此每次将功能部署到容器时它都会存在.

您在函数的部署包中包含的任何二进制文件都需要为Amazon Linux构建,这是Lambda运行的操作系统.您可以使用EC2服务器构建二进制文件,也可以搜索已经为Lambda打包ffmpeg并使其可用的人.