Sigo recibiendo el error "SharedArrayBuffer no está definido" cuando intento ejecutar ffmpeg.wasm. Parece que esto está en el lado de Webassembly. Independientemente, sé que este es un problema que se puede superar con Cross Origin Isolation. Sin embargo, estoy tratando de ejecutarlo en un host local, que por lo que entiendo Cross Origin Isolation no ayudaría. Traté de seguir las instrucciones al final de esta guía, pero fue en vano. También probé un enfoque para cambiar las banderas de Chrome // pero tampoco funcionó. Solo necesito poder ejecutar ffmpeg/wasm en el navegador pero tengo algunos problemas. ¿Alguna idea?
El servidor localhost debe proporcionar los encabezados de respuesta requeridos:
$ curl -I http://localhost/ Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Este script de servidor proporciona una prueba de referencia para la disponibilidad de SharedArrayBuffer :
// $ node server.mjs import { createServer } from 'http' createServer((request, response) => { response.writeHead(200, { 'Content-Type': 'text/html; charset=utf8', 'Cross-Origin-Opener-Policy': 'same-origin', 'Cross-Origin-Embedder-Policy': 'require-corp', }) response.write(`<script> document.write(window.SharedArrayBuffer ? '✅ SAB available' : '❌ SAB unavailable' ) </script>`) response.end() }).listen(80)Puede hacer que una página tenga un origen cruzado y que esté aislada al servir la página con estos encabezados de respuesta:
Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Opener-Policy: same-originSi usa NGINX como proxy, simplemente agregue el siguiente código al bloque de ubicación donde desea agregar el encabezado:
location some-location { add_header "Cross-Origin-Opener-Policy" "same-origin"; add_header "Cross-Origin-Embedder-Policy" "require-corp"; }O más simple, puede usar el token de esta página para habilitar SharedArrayBuffer sin necesidad de que la página esté aislada entre orígenes. Sin embargo, tiene fecha de caducidad.
En su página web, solo necesita agregar la siguiente etiqueta en la etiqueta
<head> <meta http-equiv="origin-trial" content="{token}"> </head>Y si usa NGINX, agregue un encabezado
add_header Origin-Trial {token};