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

如何在HTML5中创建FFmpeg视频标签?遇createFFmpeg未定义错误

解决Uncaught ReferenceError: createFFmpeg is not defined错误

你遇到的错误是因为没有正确访问到createFFmpeg方法,核心问题在于引入的CDN路径和调用方式不匹配。以下是两种可行的修复方案:

方案一:使用UMD格式CDN并正确调用

修改FFmpeg脚本的引入路径为UMD版本,再从全局FFmpeg对象中获取createFFmpeg方法:

<!DOCTYPE html>
<html>
<head>
  <title>HTML5 FFmpeg Example</title>
  <!-- 替换为UMD格式的CDN链接 -->
  <script src="https://cdn.jsdelivr.net/npm/@ffmpeg/ffmpeg@latest/dist/ffmpeg.min.js"></script>
</head>
<body>
  <h1>HTML5 FFmpeg Example</h1>
  <video controls>
      <source src="input.mp4" />
  </video>
  <script>
    // 从全局FFmpeg对象解构createFFmpeg
    const { createFFmpeg } = FFmpeg;
    const ffmpeg = createFFmpeg({ log: true });
    const loadFFmpeg = async () => {
      await ffmpeg.load();
      console.log('FFmpeg loaded');
    };
    loadFFmpeg();
  </script>
</body>
</html>

方案二:使用ES模块导入

如果你的环境支持ES模块,可以将脚本标记为模块类型,直接导入createFFmpeg:

<!DOCTYPE html>
<html>
<head>
  <title>HTML5 FFmpeg Example</title>
</head>
<body>
  <h1>HTML5 FFmpeg Example</h1>
  <video controls>
      <source src="input.mp4" />
  </video>
  <!-- 声明脚本为ES模块 -->
  <script type="module">
    import { createFFmpeg } from 'https://cdn.jsdelivr.net/npm/@ffmpeg/ffmpeg@latest/dist/esm/ffmpeg.mjs';
    const ffmpeg = createFFmpeg({ log: true });
    const loadFFmpeg = async () => {
      await ffmpeg.load();
      console.log('FFmpeg loaded');
    };
    loadFFmpeg();
  </script>
</body>
</html>

注意事项

  • 建议使用最新稳定版的FFmpeg CDN链接,避免版本差异导致的API不兼容
  • 本地测试时若遇到CORS报错,不要直接打开HTML文件,改用本地服务器(如Live Server)运行页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:17:15