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

如何在JavaScript(非Node.js)中使用FFmpeg?解决createFFmpeg未定义错误

解决浏览器中FFmpeg.js使用报错问题

你遇到的createFFmpeg is not defined错误,核心原因是你引入的Kagami版ffmpeg.js的API和你写的代码不匹配——createFFmpeg是ffmpeg.wasm项目的专属API,而你用的Kagami的ffmpeg.js暴露的是完全不同的全局对象。

正确使用Kagami版ffmpeg.js的步骤:

  1. 确认全局对象:该库会在浏览器全局环境中注入FFmpeg对象,而非createFFmpeg函数。
  2. 初始化与调用示例:
// 创建FFmpeg实例
const ffmpeg = new FFmpeg({
  log: true, // 开启日志输出
  MEMFS: [], // 内存文件系统,用于存储输入输出文件
});

// 监听FFmpeg加载完成事件
ffmpeg.on('ready', () => {
  // 示例:处理用户上传的视频文件
  const inputFile = document.querySelector('input[type="file"]').files[0];
  const reader = new FileReader();
  
  reader.onload = () => {
    // 将文件写入内存文件系统
    ffmpeg.FS('writeFile', 'input.mp4', new Uint8Array(reader.result));
    
    // 执行FFmpeg命令,比如转码为WebM格式
    ffmpeg.run('-i', 'input.mp4', '-c:v', 'libvpx', '-crf', '10', 'output.webm');
    
    // 监听命令执行完成事件
    ffmpeg.on('exit', (code) => {
      if (code === 0) {
        // 读取输出文件并处理
        const outputBuffer = ffmpeg.FS('readFile', 'output.webm');
        const outputBlob = new Blob([outputBuffer], { type: 'video/webm' });
        const downloadUrl = URL.createObjectURL(outputBlob);
        
        // 创建下载链接
        const downloadLink = document.createElement('a');
        downloadLink.href = downloadUrl;
        downloadLink.download = 'converted.webm';
        downloadLink.click();
        
        URL.revokeObjectURL(downloadUrl);
      } else {
        console.error('FFmpeg执行失败,错误码:', code);
      }
    });
  };
  
  reader.readAsArrayBuffer(inputFile);
});

// 启动FFmpeg加载
ffmpeg.load();

如果想使用createFFmpeg(ffmpeg.wasm):

若你确实需要createFFmpeg这个API,需替换CDN为ffmpeg.wasm的官方UMD版本,比如:

<script src="https://cdn.jsdelivr.net/npm/@ffmpeg/ffmpeg@0.12.6/dist/ffmpeg.min.js"></script>

此时你的原代码即可正常运行:

const ffmpeg = createFFmpeg({ log: true });
await ffmpeg.load();
// 后续可通过ffmpeg.FS写入文件、ffmpeg.run执行命令等

内容的提问来源于stack exchange,提问作者Laimonas Rupeika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:03:14