Operar SwissKnife
Solución de problemas
Diagnosticar un puerto ocupado, un WASM ausente, cabeceras eliminadas o un formato no compatible.
La página no responde
- Comprueba el puerto: puerto
2501publicado por Docker y puerto loopback2499para Vite. - Inspecciona el contenedor:
docker compose ps
docker compose logs --tail 100 swissknife- La comprobación de estado solicita
http://127.0.0.1:2501/dentro del contenedor. Un estado no saludable apunta a Nginx, no a tu navegador.
El motor de audio/vídeo no se carga
- abre
/ffmpeg/ffmpeg-core.wasm: debe responder200conapplication/wasm; - comprueba
Cross-Origin-Opener-Policy: same-originyCross-Origin-Embedder-Policy: require-corpen el documento; - un proxy inverso puede haber eliminado estas cabeceras: consulta Proxy inverso;
- la primera carga descarga unos 32 MB, por lo que una conexión lenta puede alcanzar el límite de 120 segundos;
- las conversiones solo de imágenes no necesitan el motor: convertir PNG a JPG puede funcionar aunque falle MP3.
La consola, disponible mediante el botón Consola, muestra el registro de FFmpeg.
docker compose up falla
- puerto del host ocupado: cambia solo el puerto del host a la izquierda y conserva el puerto del proyecto a la derecha;
- la imagen de GHCR no está disponible: compila con
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build; - no tienes permisos suficientes para ejecutar Docker.
Se rechaza un archivo
Los PDF, textos y tipos desconocidos no se añaden a la cola. Los GIF se tratan como vídeo. TIFF/BMP se trata como imagen solo si el navegador puede decodificarlo. Consulta Formatos.
La demo no muestra el distintivo
Probablemente estás utilizando el producto normal (npm run dev o la imagen de GHCR). El distintivo solo se incluye en build:demo / Vercel.
Una conversión agota la memoria de la pestaña
El aviso por encima de 50 MB es normal. Cierra otras pestañas, convierte un archivo cada vez o reduce el archivo de origen. No existe una cola remota a la que descargar el uso de memoria.
Control de calidad del checkout del producto
npm run lint
npm test
npm run build