运行ffmpeg.wasm示例时npm run download报MODULE_NOT_FOUND错误求助
解决npm run download的MODULE_NOT_FOUND错误
- 先执行
npm install安装项目所有依赖,download-assets.js用到的Node模块大概率没装,这是报错的核心原因 - 如果还是报错,打开
scripts/download-assets.js查看开头的require语句,定位缺失的模块,比如缺axios就执行npm install axios,缺fs-extra就安装fs-extra - 嫌麻烦也可以手动获取资源:ffmpeg.wasm需要的核心文件是
ffmpeg-core.js、ffmpeg-core.wasm、ffmpeg-core.worker.js,直接从ffmpeg.wasm的npm包或对应版本的发布包中提取即可
外部资源部署ffmpeg.wasm的方法
要是把ffmpeg.wasm的核心资源放在应用外部(比如独立CDN、静态资源服务器),按以下步骤操作:
指定资源加载路径
初始化FFmpeg实例时,通过corePath参数指定外部资源的完整URL:const { createFFmpeg } = FFmpeg; const ffmpeg = createFFmpeg({ corePath: 'https://你的资源服务器域名/路径/ffmpeg-core.js', log: true });注意三个核心文件需放在同一目录下,部分版本支持单独配置
workerPath和wasmPath来分别指定对应文件的地址配置CORS权限
如果资源和你的应用不在同一域名,必须给资源服务器配置CORS头,允许应用域名跨域访问。比如设置Access-Control-Allow-Origin: 你的应用域名,生产环境不要用*,限制指定域名更安全版本控制避免缓存问题
给资源URL添加版本号或哈希值,比如https://你的CDN/ffmpeg-core-v0.12.6.js,防止浏览器缓存旧版本资源。也可以用打包工具的环境变量管理路径,方便切换开发和生产环境的资源地址手动加载资源(可选)
要是需要更灵活的加载控制,直接用script标签加载核心文件后再初始化:<script src="https://你的资源服务器域名/路径/ffmpeg-core.js"></script> <script> const { createFFmpeg } = FFmpeg; const ffmpeg = createFFmpeg({ log: true }); // 后续调用ffmpeg.load()等操作 </script>
内容的提问来源于stack exchange,提问作者Jimmy
相关产品推荐
相关产品推荐

