ManimGL — оригинальный движок 3Blue1Brown для создания точных анимаций на основе кода, используемых в обучающих видео по математике.
YusufB5/ASCILINE
Движок на Python и JavaScript, который преобразует видео в ASCII- или пиксельные кадры и передаёт их в реальном времени HTML5-плееру на Canvas.
- Звёзды
- 2,772
- Форки
- 315
- Открытые issues
- 1
- Последний коммит
- 16 часов назад
Что это?
ASCILINE преобразует видео в текстовые кадры. Бэкенд на Python, построенный на FastAPI, декодирует видео с помощью OpenCV, сопоставляет каждому пикселю ASCII-символ или цветной блок и передаёт кадры в двоичном виде через WebSocket. Клиент на обычном JavaScript отрисовывает их на HTML5 Canvas, поэтому браузеру не нужны видеокодек и тег <video>.
Помимо потоковой передачи в реальном времени, проект позволяет собрать видео в автономный файл .ascf, который можно воспроизводить с любого статического хостинга, например GitHub Pages, с помощью компилятора на Python или Studio, работающей в браузере. В комплект также входит JavaScript SDK (asciline-player) с классом AsciiPlayer и элементом <ascf-player>, а для более высокой частоты кадров в режиме пикселей можно использовать движок на Rust.
Проект поддерживает Windows, macOS и Linux, предлагает несколько вариантов глубины цвета — от чёрно-белого до 16 млн цветов — и включает Docker-файлы для потокового сервера.
Ключевые возможности
- 01Передаёт ASCII-кадры или кадры с цветными пиксельными блоками на Canvas в браузере через WebSocket.
- 02Компилирует видео в автономные файлы .ascf для размещения на статическом хостинге.
- 03Предоставляет JavaScript SDK с API на основе класса и HTML-элементом <ascf-player>.
- 04Предлагает несколько цветовых режимов — от чёрно-белого до 16 млн цветов.
- 05Поддерживает ввод с YouTube и по URL через дополнительный компонент yt-dlp, а также очереди из папок и JSON-плейлистов.
Сценарии использования
- Добавление на сайт видео с текстовым эффектом без видеоплеера.
- Воспроизведение видео на маломощных устройствах или в сетях с ограниченной пропускной способностью, где недоступно декодирование на GPU.
- Размещение предварительно скомпилированных видеоклипов на статическом сайте без бэкенда.
- Создание ретро-терминальных или типографических визуальных эффектов.
Быстрый старт
- 1
Установите зависимости Python, как описано в разделе Installation файла README
- 2
Запустите сервер прямой трансляции, используя видеофайл
python stream_server.py video.mp4 --host 0.0.0.0
Что важно знать
- Движок распространяется по лицензии AGPL v3, которая накладывает обязательства копилефта, а JavaScript SDK — по лицензии MIT.
- Функция DCT пикселей в реальном времени в дополнительном движке на Rust является предварительной версией и тестировалась только в Windows.
- Требуется Python версии 3.9 или новее.
Темы
Частые вопросы
- Что такое ASCILINE?
- Движок на Python и JavaScript, который преобразует видео в ASCII- или пиксельные кадры и передаёт их в реальном времени HTML5-плееру на Canvas. ASCILINE преобразует видео в текстовые кадры. Бэкенд на Python, построенный на FastAPI, декодирует видео с помощью OpenCV, сопоставляет каждому пикселю ASCII-символ или цветной блок и передаёт кадры в двоичном виде через WebSocket. Клиент на обычном JavaScript отрисовывает их на HTML5 Canvas, поэтому браузеру не нужны видеокодек и тег <video>.
- ASCILINE можно использовать бесплатно? Какая у него лицензия?
- ASCILINE распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- ASCILINE всё ещё поддерживается?
- Активно поддерживается. Последний коммит в ASCILINE — 19 окт. 2026 г..
- Для чего можно использовать ASCILINE?
- Добавление на сайт видео с текстовым эффектом без видеоплеера. Воспроизведение видео на маломощных устройствах или в сетях с ограниченной пропускной способностью, где недоступно декодирование на GPU. Размещение предварительно скомпилированных видеоклипов на статическом сайте без бэкенда. Создание ретро-терминальных или типографических визуальных эффектов.
- Как установить ASCILINE?
- Установите зависимости Python, как описано в разделе Installation файла README Запустите сервер прямой трансляции, используя видеофайл: python stream_server.py video.mp4 --host 0.0.0.0
- Где скачать ASCILINE?
- Исходный код и инструкции по установке — на GitHub: https://github.com/YusufB5/ASCILINE
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Утилита командной строки и библиотека Python, которые превращают изображение в стиле доски для рисования в MP4 с прорисовкой от руки, используя CPU и при необходимости синхронизацию с озвучкой.
Небольшая JavaScript-библиотека без зависимостей: с её помощью HTML-элементы могут отправлять AJAX-, WebSocket- и SSE-запросы через атрибуты.
Быстрая библиотека для 2D-рендеринга в вебе: рисует графику, спрайты и текст с помощью WebGL и WebGPU.
Быстрый CLI-инструмент статического анализа с открытым исходным кодом: находит ошибки и проверяет соблюдение стандартов с помощью похожих на код шаблонов, а не regex или AST.
Показывает все дороги выбранного города на одной карте, используя данные OpenStreetMap прямо в браузере.