ASCILINE

把视频实时变成字符画,网页 30 帧流畅播放

ASCILINE 是一个把视频实时转换成 ASCII 字符画的高性能渲染引擎,专为在网页上低延迟播放而设计。它解决了传统 ASCII 视频生成速度慢、难以实时串流的问题:通过 WebSocket 二进制流把服务端渲染的字符帧推送到浏览器,在 HTML5 Canvas 上以 30 FPS 稳定播放,同时提供一个隔离的编译器,可在无服务器环境下把视频预编译成静态 ASCII 动画,方便部署到静态站点。核心能力包括实时二进制流传输、独立编译流程、Canvas 高效绘制以及面向低延迟场景的帧调度。项目用 JavaScript 编写,适合做终端风格视觉、复古字符动画、直播弹幕式字符渲染等创意场景,既能在服务端实时生成,也能离线批量产出静态结果。

开源 unknown 视频生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2760
维护状态 活跃
是否开源 是
定价模式 unknown

项目预览

项目数据

分类视频生成
开发团队YusufB5
所属国家
定价模式unknown
价格说明定价信息待确认
访问状态
是否开源是
开源协议NOASSERTION
主要语言JavaScript
技术栈/模型
GitHub 星标★ 2760
30天Star增速
HF 下载量
上线时间2026-05-01 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-10-09
浏览次数0

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 10 分钟 部署方式:本地安装 8 步

环境要求

  • Python 环境(可运行 pip 与 python 命令,Docker 镜像基于 python:3.11-slim)
  • FFmpeg / FFprobe(用于 URL/YouTube 下载视频的归一化;Docker 镜像内已预装)
  • 浏览器(用于打开 http://localhost:8000 观看 Canvas 字符播放)
  • Node.js / npm(仅当你需要安装前端播放库 asciline-player)
  • Docker 与 Docker Compose(可选,用容器方式运行流服务器)

安装与启动步骤

  1. 1获取项目代码

    把仓库克隆到本地并进入项目根目录,后续所有命令都在该目录下执行,目录内含 stream_server.py 等脚本。

    git clone https://github.com/YusufB5/ASCILINE.git
    cd ASCILINE
  2. 2安装 Python 依赖

    依赖定义在 pyproject.toml,直接安装当前目录即可;也可手工安装等价依赖列表。服务器/无显示器环境建议用 headless 版 OpenCV。

    pip install .
  3. 3准备视频素材

    把 .mp4/.mkv 等视频放进项目下的 videos/ 目录(文件夹模式),或记下单文件路径稍后直接传给脚本。

  4. 4启动 Web 流服务器

    单文件模式渲染并推流,--cols 控制字符网格列数;启动后保持终端窗口不要关闭。

    python stream_server.py video.mp4 --cols 240
  5. 5或用文件夹/播放列表模式

    文件夹模式按文件系统顺序播放 videos/ 里的所有视频,加 --loop 循环;也可用 playlist.json 做逐视频覆盖。

    python stream_server.py --folder videos --cols 200
    python stream_server.py --playlist playlist.json --cols 220 --loop
  6. 6浏览器观看

    打开本地地址即可看到 Canvas 上的 ASCII 视频画面,服务端通过 WebSocket 二进制流按帧推送。

  7. 7Docker 一键部署(可选)

    compose 会构建镜像并默认以文件夹模式启动服务,把宿主机 ./videos 挂载到容器 /app/videos,无需重建即可新增视频。

    docker compose up --build
  8. 8纯命令行播放或前端库(可选)

    可在 ANSI 终端里直接播放;做网页集成时则安装 asciline-player,或直接引用 CDN 模块脚本。

    python ascii_video_player2.py video.mp4 --cols 100 --quality 0
    npm install asciline-player

关键配置

配置项必填说明示例
videos/ 目录是存放待播放视频,Docker 下挂载到 /app/videos./videos/video.mp4
playlist.json否播放队列与逐视频覆盖配置playlist.json
--cols否ASCII 字符网格列数,越大越精细、开销越高240
--loop否播放结束后循环重播队列--loop
--cache-limit否YouTube 下载缓存的 LRU 上限,单位 MB,默认 102405000
--host / --port否服务监听地址与端口,Docker 默认 0.0.0.0:8000--host 0.0.0.0 --port 8000

如何确认成功

浏览器访问 http://localhost:8000,能看到 ASCII 字符画面流畅播放(约 30 FPS)即启动成功;Docker 方式同样是该地址。

常见问题

Q:不想装 Python,能不能直接用?

A:可以。用浏览器 Studio(https://yusufb5.github.io/ASCILINE/static_player/studio/)在本地完成视频到 .ascf 的编译,无需 Python,文件不会离开浏览器。

Q:Docker 里能播放 YouTube 链接吗?

A:默认不行。镜像只安装 requirements.txt,不含 yt-dlp;需在 Dockerfile 构建前加 RUN pip install ".[ytdlp]"(或 pip install yt-dlp)后重新构建。

Q:本地播放本地文件需要 yt-dlp 吗?

A:不需要。yt-dlp 只在传入 URL/YouTube 播放时才需要,装 pip install ".[ytdlp]" 即可;URL 播放还会用到 FFmpeg 做归一化。

Q:服务器或容器里装 OpenCV 报错怎么办?

A:换用 opencv-python-headless,它是 opencv-python 的轻量替代,避免拉入用不到的 GUI 依赖,Docker 镜像构建时也做了这个替换。

Q:下载的视频会一直占磁盘吗?

A:不会。YouTube 下载按视频 ID 缓存在 videos/,内置 LRU 上限,可用 --cache-limit 5000 把缓存上限设为 5 GB(默认 10240 MB)。

注意事项

  • Docker 方式默认运行 stream_server.py --folder videos --host 0.0.0.0 --port 8000,可通过在镜像名后追加参数覆盖,例如 --cols 220 --loop。
  • 容器内不适合使用摄像头和终端独立播放模式(ascii_video_player2.py),Docker 仅面向 Web 流服务器。
  • 客户端 Studio 编码器为求速度只输出 RAW/ZLIB/DELTA,追求最大压缩(RLE/DCT)的生产级输出请用 Python 编译器。
  • YouTube 下载会以 ≤480p 抓取并统一转成 H.264/AAC 恒定帧率,以保证音画同步。

核心亮点

  • WebSocket 二进制流传输,比文本协议更省带宽、延迟更低
  • 同时支持实时串流与无服务器静态预编译两种模式
  • 在 HTML5 Canvas 上稳定跑 30 FPS,浏览器端播放体验流畅

不足之处

  • 依赖 WebSocket 服务端,纯静态部署只能走预编译模式
  • ASCII 分辨率下画面细节有限,不适合高保真视频还原

适用场景

  • 终端风格网站或个人主页的动态字符背景
  • 直播/会议中实时把视频转成字符画叠加展示
  • 无服务器静态站点预生成 ASCII 动画作为轻量视觉素材

替代项目

ascii-video、video-to-ascii

项目介绍

ASCILINE 是视频领域的开源项目,由 YusufB5 开发,是 2026 年新上线的项目。

在全站 13,997 个收录项目中,它的 GitHub 星标数(2,760)位列前 30%,在视频分类的 528 个项目里位列前 9%。

项目目前处于活跃维护状态,最近一次代码更新于 2026-10-08。

它主要面向的使用场景是:终端风格网站或个人主页的动态字符背景。同类可对比的替代方案包括 ascii-video、video-to-ascii。

同类项目推荐

MoneyPrinterTurbo 开源

输入一句话,高清短视频自动出炉,文案配音全包了

利用 AI 大模型和自动化工作流,根据主题或关键词一键生成高清短视频。Generate HD short ···

★ 129176 2026-08-09
openscreen 开源

免费无水印录屏做演示,替代 Screen Studio

Record your screen, ship a demo. Free and open-source, GPU-accelerated, no watermark···

★ 3784 2026-08-10
seedance-2.0-api 开源

快速上手字节Seedance 2.0,文本/图片一键生成视频

Seedance 2.0 API — text-to-video and image-to-video examples

★ 329 2026-08-26
auto-subs 开源

在剪辑软件里直接生成字幕,省去导出导入的麻烦

On-device subtitle generation that connects directly to DaVinci Resolve, Premiere, a···

★ 4325 2026-08-10