Repolode
YusufB5

YusufB5/ASCILINE

将视频转换为 ASCII 或像素块画面,并通过 WebSocket 实时推送到 HTML5 Canvas 播放的渲染引擎。

Star
2,772
Fork
315
未关闭 Issue
1
最近提交
2小时前

这是什么?

ASCILINE 可以把视频转换为文本风格的画面。后端基于 FastAPI,用 OpenCV 解码视频,把每个像素映射为 ASCII 字符或彩色方块,再通过 WebSocket 以二进制数据推送给前端。前端使用原生 JavaScript 将画面绘制到 HTML5 Canvas 上,浏览器无需解码视频编码,也不依赖 <video> 标签。

除了实时推流,项目还可以把视频编译为独立的 .ascf 文件,部署到 GitHub Pages 等静态站点即可播放。编译方式包括 Python 编译器和浏览器端 Studio。项目还提供 asciline-player JavaScript SDK,以及可选的 Rust 引擎,用于提升像素模式的帧率。

项目支持 Windows、macOS 和 Linux,提供从黑白到 1600 万色的多种颜色模式,并附带用于流媒体服务器的 Docker 配置。

核心功能

  • 01通过 WebSocket 将 ASCII 或彩色像素块画面推送到浏览器 Canvas。
  • 02将视频编译为可独立部署的 .ascf 文件,适合静态站点托管。
  • 03提供 JavaScript SDK,包含类接口和 <ascf-player> HTML 元素。
  • 04支持从黑白到 1600 万色的多种颜色模式。
  • 05可选安装 yt-dlp 后支持 YouTube 和网址输入,并支持文件夹与 JSON 播放列表。

适用场景

  • 在网站中嵌入文字风格的视频效果,无需传统视频播放器。
  • 在无 GPU 解码或网络带宽受限的设备上播放视频。
  • 将预编译的视频片段部署在无后端的静态站点上。
  • 制作复古终端风格或排版化的视觉作品。

快速上手

  1. 1

    按照 README 的安装部分安装 Python 依赖

  2. 2

    用视频文件启动实时流媒体服务器

    python stream_server.py video.mp4 --host 0.0.0.0

使用前须知

  • 引擎采用 AGPL v3 许可证,具有 copyleft 义务;JavaScript SDK 采用 MIT 许可证。
  • 可选的 Rust 引擎及其实时像素 DCT 处于预览阶段,仅在 Windows 上测试过。
  • 需要 Python 3.9 或更高版本。

标签

常见问题

ASCILINE 是什么?
将视频转换为 ASCII 或像素块画面,并通过 WebSocket 实时推送到 HTML5 Canvas 播放的渲染引擎。 ASCILINE 可以把视频转换为文本风格的画面。后端基于 FastAPI,用 OpenCV 解码视频,把每个像素映射为 ASCII 字符或彩色方块,再通过 WebSocket 以二进制数据推送给前端。前端使用原生 JavaScript 将画面绘制到 HTML5 Canvas 上,浏览器无需解码视频编码,也不依赖 <video> 标签。
ASCILINE 可以免费使用吗?用的什么许可证?
ASCILINE 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
ASCILINE 还在维护吗?
活跃维护中。ASCILINE 最近一次提交是在 2026年10月19日。
ASCILINE 适合用来做什么?
在网站中嵌入文字风格的视频效果,无需传统视频播放器。 在无 GPU 解码或网络带宽受限的设备上播放视频。 将预编译的视频片段部署在无后端的静态站点上。 制作复古终端风格或排版化的视觉作品。
ASCILINE 怎么安装和运行?
按照 README 的安装部分安装 Python 依赖 用视频文件启动实时流媒体服务器: python stream_server.py video.mp4 --host 0.0.0.0
在哪里获取 ASCILINE?
源代码和安装说明在 GitHub 上:https://github.com/YusufB5/ASCILINE

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目