Repolode
YusufB5

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

    Установите зависимости Python, как описано в разделе Installation файла README

  2. 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 обновляется ежедневно.

Похожие проекты

ManimGL — оригинальный движок 3Blue1Brown для создания точных анимаций на основе кода, используемых в обучающих видео по математике.

95,3 тыс.7,8 тыс.PythonMITОбновлён в прошлом месяце

Утилита командной строки и библиотека Python, которые превращают изображение в стиле доски для рисования в MP4 с прорисовкой от руки, используя CPU и при необходимости синхронизацию с озвучкой.

24227PythonMITОбновлён в прошлом месяце

Быстрый CLI-инструмент статического анализа с открытым исходным кодом: находит ошибки и проверяет соблюдение стандартов с помощью похожих на код шаблонов, а не regex или AST.

17,1 тыс.1,1 тыс.CLGPL-2.1Обновлён 8 часов назад