ManimGL es el motor original de 3Blue1Brown para crear animaciones precisas mediante código y producir videos explicativos de matemáticas.
YusufB5/ASCILINE
Un motor en Python y JavaScript que convierte video en fotogramas ASCII o de bloques de píxeles y los transmite en tiempo real a un reproductor HTML5 Canvas.
- Estrellas
- 2,772
- Forks
- 315
- Issues abiertos
- 1
- Último commit
- hace 13 horas
¿Qué es?
ASCILINE convierte video en fotogramas basados en texto. Un backend en Python basado en FastAPI decodifica el video con OpenCV, asigna a cada píxel un carácter ASCII o un bloque de color y transmite los fotogramas como datos binarios por WebSocket. Un cliente de JavaScript sin frameworks los dibuja en un HTML5 Canvas, así que el navegador no necesita un códec de video ni una etiqueta <video>.
Además de la transmisión en vivo, el proyecto puede compilar un video en un archivo .ascf autocontenido que se reproduce desde cualquier servidor estático, como GitHub Pages, mediante un compilador en Python o Studio, una herramienta que funciona en el navegador. También incluye un SDK de JavaScript (asciline-player) con una clase AsciiPlayer y un elemento <ascf-player>, además de un motor opcional en Rust para obtener más FPS en el modo de píxeles.
El proyecto es compatible con Windows, macOS y Linux, ofrece varias profundidades de color, desde blanco y negro hasta 16 millones de colores, e incluye archivos Docker para el servidor de transmisión.
Funciones clave
- 01Transmite fotogramas ASCII o de bloques de píxeles de colores a un canvas del navegador mediante WebSocket.
- 02Compila videos en archivos .ascf autocontenidos para alojarlos en servidores estáticos.
- 03Ofrece un SDK de JavaScript con una API basada en clases y un elemento HTML <ascf-player>.
- 04Incluye varios modos de color, desde blanco y negro hasta 16 millones de colores.
- 05Admite YouTube y URL mediante una extensión opcional de yt-dlp, además de colas de listas de reproducción en carpetas y JSON.
Casos de uso
- Incorporar en un sitio web un efecto de video con estilo de texto, sin usar un reproductor de video.
- Reproducir video en dispositivos de bajo consumo o redes con limitaciones donde no esté disponible la decodificación por GPU.
- Alojar clips de video precompilados en un sitio estático sin backend.
- Crear experiencias visuales tipográficas o con estética de terminal retro.
Inicio rápido
- 1
Instala las dependencias de Python como se indica en la sección Installation del README
- 2
Inicia el servidor de streaming en directo con un archivo de vídeo
python stream_server.py video.mp4 --host 0.0.0.0
Antes de usarlo
- El motor está bajo la licencia AGPL v3, que implica obligaciones de copyleft, mientras que el SDK de JavaScript está bajo la licencia MIT.
- La DCT de píxeles en directo del motor opcional de Rust es una versión preliminar y solo se ha probado en Windows.
- Se requiere Python 3.9 o posterior.
Temas
Preguntas frecuentes
- ¿Qué es ASCILINE?
- Un motor en Python y JavaScript que convierte video en fotogramas ASCII o de bloques de píxeles y los transmite en tiempo real a un reproductor HTML5 Canvas. ASCILINE convierte video en fotogramas basados en texto. Un backend en Python basado en FastAPI decodifica el video con OpenCV, asigna a cada píxel un carácter ASCII o un bloque de color y transmite los fotogramas como datos binarios por WebSocket. Un cliente de JavaScript sin frameworks los dibuja en un HTML5 Canvas, así que el navegador no necesita un códec de video ni una etiqueta <video>.
- ¿ASCILINE es gratuito? ¿Qué licencia tiene?
- ASCILINE es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ASCILINE sigue mantenido?
- Mantenimiento activo. El último commit de ASCILINE fue el 19 oct 2026.
- ¿Para qué puedo usar ASCILINE?
- Incorporar en un sitio web un efecto de video con estilo de texto, sin usar un reproductor de video. Reproducir video en dispositivos de bajo consumo o redes con limitaciones donde no esté disponible la decodificación por GPU. Alojar clips de video precompilados en un sitio estático sin backend. Crear experiencias visuales tipográficas o con estética de terminal retro.
- ¿Cómo se instala ASCILINE?
- Instala las dependencias de Python como se indica en la sección Installation del README Inicia el servidor de streaming en directo con un archivo de vídeo: python stream_server.py video.mp4 --host 0.0.0.0
- ¿Dónde consigo ASCILINE?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/YusufB5/ASCILINE
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Herramienta de línea de comandos y biblioteca de Python que convierte una imagen estilo pizarra en un MP4 renderizado en CPU que se revela como si estuviera dibujado a mano, con ritmo ajustable a la narración.
Una pequeña biblioteca JavaScript sin dependencias que permite a cualquier elemento HTML hacer solicitudes AJAX, WebSocket y SSE mediante atributos.
Una biblioteca rápida de renderizado 2D para la web que dibuja gráficos, sprites y texto con WebGL y WebGPU.
CLI de análisis estático, rápido y de código abierto, que detecta errores y aplica estándares de codificación mediante patrones similares al código, en lugar de regex o AST.
Representa todas las calles de una ciudad elegida en una visualización de estilo cartográfico, usando datos de OpenStreetMap en el navegador.