# caixukun-go **Repository Path**: spitman/caixukun-go ## Basic Information - **Project Name**: caixukun-go - **Description**: ikun纯享, 命令行字符动画 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-06 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ASCII Player · 视频转字符动画 一个本地工具:选一个视频,用 ffmpeg 拆帧 + 抽音轨,再把每帧转成 ASCII 字符画,最后在浏览器里以音画同步的形式播放字符动画。 形态参考 Jupyter Notebook —— 启动一个 Go 写的本地 Web 服务器,自动打开浏览器、真正操作文件系统的是后端、UI 只是个壳。 --- ## 前置要求 - 系统装好 [**ffmpeg**](https://ffmpeg.org/download.html) 并放到 `PATH`(`ffprobe` 同目录,一起装就有)。启动时程序会探测一次,没装会在 UI 顶部挂红条并在控制台警告。 - 一个现代浏览器(Chrome / Edge / Firefox / Safari)。 - 用户目录可写(放 `~/.ascii-player/db.sqlite` 做历史索引)。 ## 下载 & 运行 发布产物见 `dist/`,按平台取用: | 平台 | 文件 | |---|---| | Windows x64 | `ascii-player-windows-amd64.exe` | | macOS Intel | `ascii-player-darwin-amd64` | | macOS Apple Silicon | `ascii-player-darwin-arm64` | | Linux x64 | `ascii-player-linux-amd64` | ### Windows 双击 `ascii-player-windows-amd64.exe`。浏览器会自动打开;如果没开,复制控制台里的 `http://127.0.0.1:xxxx/` 手动访问。Windows Defender 或杀软可能拦截(二进制未签名),放行即可。 ### macOS ```bash chmod +x ascii-player-darwin-arm64 xattr -d com.apple.quarantine ascii-player-darwin-arm64 # 若从浏览器下载 ./ascii-player-darwin-arm64 ``` 或 Finder 里右键 → 打开 → 同意一次。 ### Linux ```bash chmod +x ascii-player-linux-amd64 ./ascii-player-linux-amd64 ``` --- ## 使用流程 UI 顶栏有两个 tab:**转换** 和 **播放**。右上角是 **退出** 按钮(干净地关掉后端进程)。 ### 转换 tab 1. 点**浏览…**选视频文件(或直接粘贴绝对路径) 2. 调整**宽度 / 高度 / 帧率 / 字符集 / 对比度**(都有合理默认) 3. 点**开始转换**。程序在视频同级目录建工作目录 `<视频名>.ascii/`: ``` demo.ascii/ ├── meta.json 转换参数 + has_audio 等统计 ├── frames/ ffmpeg 拆出来的 jpg ├── ascii/ 每一帧对应的 .txt 字符画 └── audio.m4a 若源视频有音轨(AAC 128kbps),无则不存在 ``` 4. 进度页实时显示两段进度条(拆帧 → 字符转换)和 ffmpeg 日志,可随时**取消**(取消会清掉工作目录) 5. 完成后 1.5 秒自动跳到播放 tab;也可以点 ▶ 播放 立即跳 **冲突处理**:用同一个视频再提交时,后端返回 `409`,UI 弹确认框询问"是否覆盖"。 ### 播放 tab - 顶部列出**最近使用**(从 SQLite 读),每行点 **▶ 播放** 即加载;点**移除**把行从列表里删(不动磁盘) - 工作目录已经不存在的条目灰显 + 标注 - 右上角**打开新文件…** 启文件浏览弹窗: - 选视频文件:若同级 `.ascii/` 已存在则直接加载;否则提示"前往转换 tab" - 列表里以 `.ascii` 结尾的目录,行尾有独立的 **播放** 按钮,点即加载 ### 播放器 - 字符帧**自动适配窗口**(默认):窗口变大字号自动放大、字符铺满容器;按 **−/+** 切到手动档,点 **自动** 切回 - **⛶ 全屏**按钮调用 Fullscreen API,字符帧吃满整屏 - 有音轨时隐藏 `