当前位置:首页 » 《我的小黑屋》 » 正文

前端使用ffmpeg出现ReferenceError: SharedArrayBuffer is not defined解决

12 人参与  2024年09月12日 13:21  分类 : 《我的小黑屋》  评论

点击全文阅读


问题原因:

“SharedArrayBuffer is not defined” 错误是因为在浏览器环境中,SharedArrayBuffer 对象被认为是一种潜在的安全风险。为了防止 Spectre 攻击等漏洞,现代浏览器通常会禁用或限制对 SharedArrayBuffer 的使用

SharedArrayBuffer 是一种 JavaScript 对象,用于在多线程环境中共享内存。然而,由于共享内存的特性,它可能导致安全漏洞。攻击者可以通过操纵共享内存来执行恶意代码,因此大部分浏览器对其进行了限制

具体问题详情可参考这篇文文章:https://juejin.cn/post/7065181402848837662#heading-0

解决办法:

本地运行解决方案:  
在vue.config.js中的devServer中配置请求头:

  devServer: {    headers: {      // 如果需要用到ffmpeg合并视频,需要将COEP和COOP打开,来确保ShareArrayBuffer能够正常使用      'Cross-Origin-Embedder-Policy': 'require-corp',      'Cross-Origin-Opener-Policy': 'same-origin',    }  }

在vite.config.js中的devServer中配置请求头:

server: {    headers: {      'Cross-Origin-Opener-Policy': 'same-origin',      'Cross-Origin-Embedder-Policy': 'require-corp'    },
生产环境运行解决方案:

vue路由要使用mode: "hash"的方式;
nginx部署,为指定路由加上请求头

location /ffmpeg {    root   html/dist;    index  dolphin-ffmpeg.html;    add_header Cross-Origin-Opener-Policy same-origin;    add_header Cross-Origin-Embedder-Policy require-corp;}


点击全文阅读


本文链接:http://zhangshiyu.com/post/158760.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1