vhs-demo
在运行演示录制、诊断录制失败或从现有 MP4 重新生成 GIF 时使用。涵盖了 Docker + VHS + ffmpeg 管道。 --- # VHS 演示录制 使用此技能来运行、调试或重新生成 gh-infra 演示 GIF 录制。 ## 何时使用 - 直接运行 `make demo` 或 `docs/tapes/vhs.sh` - 诊断录制失败或生成 0 字节 GIF 的原因 - 从现有 MP4 重新生成 GIF,无需重新录制 - 了解录制管道 ## 先决条件 - Docker 必须运行 - Go 工具链(用于交叉编译 Linux 二进制文件) ## 管道 ```text make demo 1. go build -o docs/tapes/.gh-infra (GOOS=linux GOARCH=amd64) 2. docs/tapes/vhs.sh docker 构建 → gh-infra-vhs 映像 (VHS + vim)对于并行的每个 *.tape: docker run --memory=1g --cpus=2 → 生成 .mp4 c. 对于每个 .mp4 按顺序: docker run jrottenberg/ffmpeg:7-alpine → 生成 .gif 3. 将 GIF 复制到 docs/public/ 4. 清理 .gh-infra 二进制文件 ``` ## 为什么 MP4 → GIF 而不是直接 GIF 当多个容器在 macOS 上并行运行时,VHS 的内置 GIF 输出不可靠。解决方法是仅从 VHS 输出 MP4,然后通过 ffmpeg 使用高质量设置(lanczos 缩放、sierra2_4a 抖动、256 色)转换为 GIF。 ## 关键文件 |文件|角色 | |------|------| | `docs/tapes/vhs.sh` | Orchestrator:并行录制+顺序GIF转换| | `文档/磁带/Dockerfile` | `ghcr.io/charmbracelet/vhs` + vim | | `docs/tapes/*.tape` | VHS 场景文件 | | `docs/tapes/setup*.sh` |每个演示设置脚本(模拟数据、gh 包装器)| | `文档/磁带/mock-gh` | `gh` CLI 的通用模拟 | | `docs/tapes/.gh-infra` |交叉编译的 Linux 二进制文件(临时)| ## 输出位置 - 原始录音:`docs/tapes/*.mp4` 和 `docs/tapes/*.gif` - 已发布资源:`docs/public/demo*.gif`(由 Makefile 复制) ## 环境变量 `make demo` 通过 `-e` 标志将 `DEMO_ENV` 变量转发到 Docker。使用它来将环境覆盖(例如`GH_INFRA_OUTPUT`)传递到
更新日志: Source: GitHub https://github.com/babarot/gh-infra
评论加载中...