Опубликованный на GitHub движок ASCILINE превращает видео в цветной ASCII-текст и работает прямо в браузере со скоростью до 30 кадров в секунду
Автор называет свой поток «неблокируемым», но энтузиасты уже нашли способ убрать его через режим точечного удаления элементов в блокировщиках рекламы
Движок предлагает пять режимов цветности: от классического монохрома до Mode 5 с поточной передачей пикселей и качеством, близким к 360p
В лицензию MIT добавлена «антирекламная оговорка», однако скептики сомневаются, что она остановит недобросовестных дельцов
Под лицензией MIT вышло необычное решение для потоковой передачи ASCII-видео. Движок ASCILINE Engine от разработчика под псевдонимом YusufB5 описывается как «высокопроизводительный движок отрисовки ASCII-видео в реальном времени», пригодный для трансляции «неблокируемого видеопотока». Примеры его работы выложены в репозитории на GitHub и в постах автора в общественных сетях — один из них встроен ниже. Решение сразу вызвало споры из-за опасений, что оно откроет дорогу неблокируемой рекламе.
Источник изображения — YusufB5 на GitHub
Я создал неблокируемый видеопоток. Он отрисовывает 360p при 30 кадрах в секунду, используя чистый текст вместо разметки.
Судя по примерам, ASCILINE и правда даёт более высокую точность, чем прежние решения для перевода видео в ASCII, — некоторые из которых имеют на удивление долгую историю, восходящую к 90-м годам. Программа довольно качественно собирает цветные текстовые ролики из исходного материала. Разработчик уточняет, что эта техника опирается на Mode 3 с палитрой из 32 тысяч цветов и выдаёт картинку на 30 кадрах в секунду. При этом классический одноцветный ASCII по-прежнему доступен как один из вариантов отрисовки.
Всего движок предлагает пять режимов цветности — от монохромного текста до полноцветного Mode 5 с глубиной в 16 миллионов цветов. Наиболее впечатляет так называемая поточная передача пикселей в реальном времени. На GitHub поясняется, что эта техника задействует Mode 5 и «заменяет символы цветными блоками, приближаясь к качеству 360p». В небольшом встроенном на странице ролике картинка действительно почти неотличима от исходного MP4. Впрочем, как мы полагаем, при отрисовке в окне большего размера присущая методу «пиксельность» стала бы заметнее.
Источник изображения — YusufB5 на GitHub
Как это устроено
Под капотом ASCILINE делится на две части. Серверная сторона написана на Python с применением FastAPI: она раскадровывает видео через OpenCV, сопоставляет пиксели символам с помощью NumPy и передаёт уже двоично закодированные кадры. Клиентская часть на чистом JavaScript принимает эти кадры по WebSocket, сглаживает рывки через буфер задержки и выводит результат в сетку на HTML5 Canvas. Обмен данными идёт по облегчённому протоколу с собственным «рукопожатием» INIT, который на лету согласует разрешение и частоту кадров. Именно перенос всей тяжёлой обработки на сервер и позволяет движку оставаться лёгким на стороне зрителя.
Почему поток считают «неблокируемым»
Заявление о «неблокируемости» встретило заметное сопротивление на разных общественных площадках. Дело в том, что для браузера ASCILINE — это попросту «скрипт, обновляющий холст», а потому он не подпадает под привычные ограничения для медиа: браузеры не «придушивают» его автозапуск, а стандартные блокировщики рекламы не видят в нём видео. Однако обойти защиту всё же можно: блокировщик в режиме точечного удаления элементов (element zapper) способен быстро убрать сам HTML5 Canvas, на котором отрисовывается ASCII-ролик. Это лишь один из способов, и для него уже не хватает одного клика, но задача в целом решаема.
Споры вокруг рекламы
Большинство же комментаторов опасаются не зрителей, а тех, кто захочет с помощью этой «неблокируемой» технологии показывать публике ещё больше рекламы. YusufB5 ссылается на «строгую антирекламную оговорку в лицензии MIT, чтобы гарантировать, что технология не пойдёт на принудительный показ рекламы, которую нельзя пропустить». С зарегистрированными компаниями такое условие, возможно, и сработает, но недобросовестным дельцам на подобное правило будет всё равно.
Другие возможности
Помимо споров о неблокируемости и риске злоупотреблений ради рекламы, у ASCILINE есть и более любопытные особенности, отличающие его от старых ASCII-движков. Возможность накладывать CSS-фильтры (неоновое свечение, тени, анимацию) прямо на видеопоток в реальном времени может оказаться привлекательной в ряде сценариев. Кроме того, сгенерированное ASCII-видео, по словам автора, «служит идеальным мостом для искусственного интеллекта»: сводя сложный пиксельный поток к упорядоченным логическим строкам, можно скармливать его лёгким языковым моделям для построения семантических сводок вместо тяжёлых систем машинного зрения. Наконец, сверхнизкое потребление полосы пропускания и совместимость с устройствами «интернета вещей» делают движок интересным там, где обычные кодеки (H.264/VP9) не тянут слабые сети и микроконтроллеры. Помогает этому и передача только изменившихся символов (дельта-кадров) вместе со сжатием GZIP — в результате на кадр уходит всего несколько килобайт.















