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

Docker容器内fluent-ffmpeg与ffmpeg-concat无法裁剪合并视频求助

问题根因与解决方案

两个问题均由Docker基础镜像缺少必要的编码扩展、图形运行依赖、虚拟显示组件导致,对应解决方案如下:

问题1:无法解析录制视频宽高报错解决

  • 根因:Debian系统默认源安装的ffmpeg版本较低,缺少对h264、opus等编码的完整支持,无法正确读取react-media-recorder生成的可变帧率MP4/WebM文件的元数据,导致ffmpeg-concat解析场景参数时无法获取宽高属性。
  • 解决步骤:
    1. 更换ffmpeg安装源,安装全编码支持的高版本ffmpeg
    2. 裁剪视频时强制输出固定帧率,避免可变帧率导致元数据解析失败
    3. 将音频编码拷贝配置替换为通用aac编码,兼容所有容器格式

问题2:无法创建OpenGL上下文报错解决

  • 根因:ffmpeg-concat依赖的headless-gl库需要OpenGL运行环境,无头Docker容器默认没有图形界面和对应的运行依赖,也没有虚拟显示服务支持。
  • 解决步骤:
    1. 安装OpenGL相关依赖包、xvfb虚拟显示服务
    2. 启动Node服务前先拉起xvfb虚拟显示,配置对应DISPLAY环境变量

修改后的完整Dockerfile

FROM node:14
RUN mkdir /opt/prod_api
WORKDIR /opt/prod_api

# 安装全功能ffmpeg、OpenGL依赖、xvfb虚拟显示服务
RUN apt-get -y update && apt-get -y upgrade && \
    apt-get install -y software-properties-common && \
    add-apt-repository -y ppa:savoury1/ffmpeg4 && \
    apt-get -y update && \
    apt-get install -y ffmpeg mesa-utils libgl1-mesa-glx libgl1-mesa-dri xvfb libxext6 libxi6 && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

COPY . .

RUN chmod 777 -R /opt

# 启动时先挂载虚拟显示再运行服务
ENTRYPOINT ["xvfb-run", "-a", "/opt/prod_api/entrypoint.sh"]
EXPOSE 8080

裁剪代码优化调整

const allCutVideos = await Promise.all(convertVideoList.map(async (row) => {
  return await new Promise((resolve) => {
   ffmpeg(row.uploadedFile)
    .setStartTime(row.startTime)
    .setDuration(row.endTime)
    .size("640x360")
    .autopad()
    .outputFPS(30) // 新增固定帧率配置
    .withAudioCodec('aac') // 替换copy为通用aac编码
    .on("start", function (commandLine) {
      console.log("Spawned FFmpeg with command: " + commandLine);
    })
    .on("error", function (err) {
      resolve({ ...row, status: false, message: err.message })
    })
    .on("end", function (err) {
      if (!err) {
        resolve({ ...row, status: true });
      }
    })
    .output(row.outputPath)
    .run();
  });
}));

内容的提问来源于stack exchange,提问作者Keval savani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:57:03