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

FFMPEG wasm报错Failed to parse URL,Node.js环境启动即崩溃

解决RuntimeError: abort(TypeError: Failed to parse URL from ... ffmpeg-core.wasm)

问题原因

在Node.js环境下,@ffmpeg/ffmpeg的load()方法默认会把传入的本地路径当作URL解析,但普通本地路径缺少file://协议头,不符合URL规范,导致解析失败。

解决方案

修改createFFmpeg的配置,显式指定corePath为带file://协议的本地文件URL,有两种实现方式:

方式1:使用URL构造器转换路径

修改你的Node.js代码:

const express = require("express");
const path = require('path')
const multer = require("multer");
const { createFFmpeg } = require("@ffmpeg/ffmpeg");
const app = express();

const upload = multer({ storage: multer.memoryStorage() })
// 显式指定corePath为file://协议的URL
const ffmpegInstance = createFFmpeg({ 
  log: true,
  corePath: new URL(path.join(__dirname, 'node_modules', '@ffmpeg', 'core', 'dist', 'ffmpeg-core.wasm')).href
})
let ffmpegLoading = ffmpegInstance.load()

async function getFfmpeg() {
  if (ffmpegLoading) {
    await ffmpegLoading;
    ffmpegLoading = undefined
  }
  return ffmpegInstance
}

方式2:使用url.pathToFileURL方法(更简洁)

const express = require("express");
const path = require('path')
const { pathToFileURL } = require('url'); // 引入pathToFileURL工具
const multer = require("multer");
const { createFFmpeg } = require("@ffmpeg/ffmpeg");
const app = express();

const upload = multer({ storage: multer.memoryStorage() })
const ffmpegInstance = createFFmpeg({ 
  log: true,
  corePath: pathToFileURL(path.join(__dirname, 'node_modules', '@ffmpeg', 'core', 'dist', 'ffmpeg-core.wasm')).href
})
let ffmpegLoading = ffmpegInstance.load()

async function getFfmpeg() {
  if (ffmpegLoading) {
    await ffmpegLoading;
    ffmpegLoading = undefined
  }
  return ffmpegInstance
}

验证

修改后重新运行node index.js,即可正常加载ffmpeg-core.wasm文件,避免URL解析报错。

内容的提问来源于stack exchange,提问作者Sebastian Berglönn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:02:56