Repolode
YusufB5

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. 1

    Instala las dependencias de Python como se indica en la sección Installation del README

  2. 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