ManimGL é o mecanismo original do 3Blue1Brown para criar animações precisas e controladas por código, usadas em vídeos explicativos de matemática.
YusufB5/ASCILINE
Um mecanismo em Python e JavaScript que converte vídeos em quadros ASCII ou blocos de pixels e os transmite em tempo real para um player HTML5 Canvas.
- Estrelas
- 2,772
- Forks
- 315
- Issues abertas
- 1
- Último commit
- há 11 horas
O que é?
O ASCILINE transforma vídeos em quadros baseados em texto. Um backend em Python com FastAPI decodifica o vídeo usando OpenCV, mapeia cada pixel para um caractere ASCII ou bloco colorido e transmite os quadros como dados binários via WebSocket. Um cliente em JavaScript puro os desenha em um HTML5 Canvas, dispensando codecs de vídeo ou a tag <video> no navegador.
Além da transmissão ao vivo, o projeto pode compilar um vídeo em um arquivo .ascf autocontido, reproduzível em qualquer host estático, como o GitHub Pages, usando um compilador em Python ou o Studio baseado no navegador. Também inclui um SDK JavaScript (asciline-player), com a classe AsciiPlayer e o elemento <ascf-player>, além de um mecanismo opcional em Rust para obter mais FPS no modo de pixels.
O projeto é compatível com Windows, macOS e Linux, oferece várias profundidades de cor — do preto e branco a 16 milhões de cores — e inclui arquivos Docker para o servidor de streaming.
Recursos principais
- 01Transmite quadros ASCII ou de blocos de pixels coloridos para um canvas no navegador via WebSocket.
- 02Compila vídeos em arquivos .ascf autocontidos para hospedagem estática.
- 03Oferece um SDK JavaScript com uma API de classe e um elemento HTML <ascf-player>.
- 04Disponibiliza vários modos de cor, do preto e branco a 16 milhões de cores.
- 05Aceita vídeos do YouTube e URLs por meio de um extra opcional do yt-dlp, além de filas de reprodução de pastas e playlists JSON.
Casos de uso
- Incorporar em um site um efeito de vídeo com estilo textual, sem usar um player de vídeo.
- Reproduzir vídeos em dispositivos de baixo consumo ou em redes limitadas, onde não há decodificação por GPU disponível.
- Hospedar clipes de vídeo pré-compilados em um site estático, sem backend.
- Criar experiências visuais retrô de terminal ou com tipografia.
Início rápido
- 1
Instale as dependências do Python conforme descrito na seção Installation do README
- 2
Inicie o servidor de streaming ao vivo usando um arquivo de vídeo
python stream_server.py video.mp4 --host 0.0.0.0
Antes de usar
- O mecanismo é licenciado sob AGPL v3, que implica obrigações de copyleft, enquanto o SDK de JavaScript é licenciado sob MIT.
- A DCT de pixels ao vivo do mecanismo opcional em Rust é uma versão de prévia e foi testada apenas no Windows.
- É necessário ter Python 3.9 ou mais recente.
Tópicos
Perguntas frequentes
- O que é ASCILINE?
- Um mecanismo em Python e JavaScript que converte vídeos em quadros ASCII ou blocos de pixels e os transmite em tempo real para um player HTML5 Canvas. O ASCILINE transforma vídeos em quadros baseados em texto. Um backend em Python com FastAPI decodifica o vídeo usando OpenCV, mapeia cada pixel para um caractere ASCII ou bloco colorido e transmite os quadros como dados binários via WebSocket. Um cliente em JavaScript puro os desenha em um HTML5 Canvas, dispensando codecs de vídeo ou a tag <video> no navegador.
- ASCILINE é gratuito? Qual é a licença?
- ASCILINE é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ASCILINE ainda é mantido?
- Manutenção ativa. O último commit de ASCILINE foi em 19 de out. de 2026.
- Para que posso usar ASCILINE?
- Incorporar em um site um efeito de vídeo com estilo textual, sem usar um player de vídeo. Reproduzir vídeos em dispositivos de baixo consumo ou em redes limitadas, onde não há decodificação por GPU disponível. Hospedar clipes de vídeo pré-compilados em um site estático, sem backend. Criar experiências visuais retrô de terminal ou com tipografia.
- Como instalar ASCILINE?
- Instale as dependências do Python conforme descrito na seção Installation do README Inicie o servidor de streaming ao vivo usando um arquivo de vídeo: python stream_server.py video.mp4 --host 0.0.0.0
- Onde consigo ASCILINE?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/YusufB5/ASCILINE
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Ferramenta de linha de comando e biblioteca Python que transforma uma imagem no estilo whiteboard em um MP4 renderizado na CPU, com revelação desenhada à mão e ritmo opcionalmente sincronizado à narração.
Uma biblioteca JavaScript pequena e sem dependências que permite a qualquer elemento HTML fazer requisições AJAX, WebSocket e SSE por meio de atributos.
Uma biblioteca rápida de renderização 2D para a web que desenha gráficos, sprites e texto com WebGL e WebGPU.
CLI de análise estática rápido e open source que encontra bugs e aplica padrões de código usando padrões semelhantes ao código, em vez de regex ou ASTs.
Renderiza todas as ruas de uma cidade escolhida em uma visualização no estilo de mapa, usando dados do OpenStreetMap no navegador.