You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Amazon Lambda的Docker镜像中安装FFmpeg失败求助

解决Lambda Docker镜像中FFmpeg安装失败的问题

问题根源

public.ecr.aws/lambda/python:3.8 基于Amazon Linux 2构建,默认yum仓库未包含FFmpeg包,直接执行yum install ffmpeg会提示找不到对应软件包。

解决方案:添加第三方仓库安装FFmpeg

修改Dockerfile,先添加包含FFmpeg的第三方软件源,再执行安装操作:

FROM public.ecr.aws/lambda/python:3.8

# 复制函数代码
COPY app.py ${LAMBDA_TASK_ROOT}

# 安装依赖与FFmpeg
COPY requirements.txt .
RUN yum install -y gcc epel-release && \
    yum install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm && \
    yum install -y ffmpeg && \
    pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" && \
    # 清理yum缓存以减小镜像体积
    yum clean all && rm -rf /var/cache/yum

# 设置函数入口
CMD [ "app.handler" ]

关键步骤说明

  • 安装epel-release:为Amazon Linux 2启用额外的开源软件源基础包
  • 安装RPM Fusion Free仓库:该仓库提供FFmpeg等多媒体工具的官方编译包
  • 清理yum缓存:避免无用文件占用镜像空间

替代方案:使用预编译静态二进制包

如果不想添加第三方仓库,可直接下载预编译的FFmpeg静态二进制文件,解压后放入系统路径:

FROM public.ecr.aws/lambda/python:3.8

# 复制函数代码
COPY app.py ${LAMBDA_TASK_ROOT}

# 安装依赖与预编译FFmpeg
COPY requirements.txt .
RUN yum install -y gcc wget tar && \
    wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz && \
    tar xvf ffmpeg-release-amd64-static.tar.xz && \
    cp ffmpeg-*-amd64-static/ffmpeg /usr/bin/ && \
    cp ffmpeg-*-amd64-static/ffprobe /usr/bin/ && \
    pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" && \
    # 清理临时文件与无用依赖
    rm -rf ffmpeg-* ffmpeg-release-amd64-static.tar.xz && \
    yum remove -y wget tar && yum clean all && rm -rf /var/cache/yum

# 设置函数入口
CMD [ "app.handler" ]

该方案优势

  • 无需依赖第三方软件源,兼容性更强
  • 可选择特定版本的FFmpeg二进制包,满足定制化需求

内容的提问来源于stack exchange,提问作者Luka Savic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:21:35