← 返回文章

code-video-showcase:使用 Claude Code 通过代码生成卡点展示视频

使用 Claude Code 通过代码生成卡点展示视频

·11 分钟阅读

code-video-showcase:使用 Claude Code 通过代码生成卡点展示视频

一、项目介绍

平时制作产品宣传片、技术演示视频或个人博客介绍视频,通常需要使用专业的视频剪辑软件,或者借助 AI 视频生成工具。

有没有一种方式,可以直接通过代码绘制动画、使用程序合成音频,再将它们组合成一支完整的视频?

code-video-showcase 就是一个值得关注的开源项目。它提供了一个面向 Agent 的 Skill,利用 HTML、Canvas、SVG、Three.js、Python 和 FFmpeg 等技术,制作具有节奏感的展示视频。

它的核心思路是:让 AI 编写视频画面代码,再通过程序化渲染和音频合成,生成最终的 MP4 文件。

项目不依赖 AI 图像、视频或音乐生成模型,主要依靠代码实现画面、动画和音频。

GitHub 仓库:Moessif/code-video-showcase

二、它能用来做什么?

这个项目更适合制作以动态文字、图形、数据可视化和程序化动画为主的视频。

1. 技术产品宣传片

例如制作个人博客、开发工具或 SaaS 产品的介绍视频:

  • 动态展示产品名称和品牌标识。
  • 使用科技网格、粒子、光效和动态文字。
  • 展示技术栈、产品功能与核心卖点。
  • 配合音乐节奏切换画面。

2. 技术知识科普视频

对于前端开发者而言,也可以利用它制作技术知识动画。

例如:

  • Vue 响应式原理。
  • JavaScript 事件循环。
  • 浏览器渲染流程。
  • HTTP 请求与网络通信。
  • AI Agent 的工作流程。

这类内容可以通过代码绘制流程图、节点关系、时间轴和动态示意图。

3. 创意展示与视觉实验

项目还提供了多种视觉风格的参考方案,包括:

  • 极简产品发布风格。
  • 手绘白板风格。
  • 赛博故障风格。
  • 水墨国风。
  • 数据可视化。
  • 8-bit 像素风格。
  • Three.js 三维动画。
  • 代码演示与竖屏短视频风格。

这些风格为视频设计提供了起点,但具体效果仍然取决于实际编写的画面代码和动画设计。

三、项目的技术原理

这个项目不是传统意义上的视频编辑器,也不是直接生成视频文件的大模型。它将视频制作拆分为几个可以由程序完成的环节。

1. 整体架构

用户描述视频需求
       |
       v
Claude Code + code-video-showcase Skill
       |
       v
分析需求,规划视频结构和时间轴
       |
       +----------------------+
       |                      |
       v                      v
HTML / Canvas / SVG       Python 音频合成
Three.js 动画             NumPy / SciPy
       |                      |
       v                      v
Playwright + Chromium     WAV 音频文件
逐帧渲染画面                  |
       |                      |
       +-----------+----------+
                   |
                   v
             FFmpeg 合成编码
                   |
                   v
                MP4 视频

2. 使用 HTML、Canvas、SVG 和 Three.js 绘制画面

对于前端开发者来说,这部分应该比较容易理解。

视频中的画面本质上可以看作一个随时间变化的网页。通过 HTML 和 CSS 构建布局,利用 Canvas 绘制粒子和图形,使用 SVG 绘制矢量图形,或者通过 Three.js 创建三维场景。

例如,下面是一个简单的时间驱动动画:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <style>
    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      width: 1920px;
      height: 1080px;
      overflow: hidden;
      display: grid;
      place-items: center;
      background: #090d18;
      color: white;
      font-family: Arial, sans-serif;
    }

    h1 {
      font-size: 96px;
      opacity: 0;
      transform: translateY(40px);
    }
  </style>
</head>
<body>
  <h1 id="title">Code the Future</h1>

  <script>
    function renderFrame(t) {
      const title = document.querySelector("#title");

      const progress = Math.max(
        0,
        Math.min(1, t / 1.2)
      );

      title.style.opacity = progress;
      title.style.transform =
        `translateY(${40 * (1 - progress)}px)`;
    }

    // 测试:渲染时间为 0.8 秒的画面
    renderFrame(0.8);
  </script>
</body>
</html>

这里的 renderFrame(t) 根据传入的时间决定画面状态。项目的实际模板会在此基础上组织动画,并配合浏览器逐帧渲染。

需要注意,这只是演示原理的简化代码,并不是可以直接替代项目模板的完整视频片段。

3. 为什么强调确定性渲染?

传统网页动画通常依赖浏览器的动画循环,例如 requestAnimationFrame、CSS Animation 或实时计时器。

但在视频制作中,如果需要渲染第 100 帧,就应该能够直接计算出第 100 帧对应的画面,而不必从第一帧开始播放。

因此,项目强调让画面状态由时间参数决定:

renderFrame(timeInSeconds);

例如,在 30 FPS 的视频中:

  • 第 0 帧对应 0 秒。
  • 第 30 帧对应 1 秒。
  • 第 60 帧对应 2 秒。

只要动画逻辑和输入一致,就可以独立渲染指定时间点的画面,也方便重复渲染、定位错误和检查输出。

这也是项目避免使用依赖真实时间的动画逻辑、非固定随机数等方式的重要原因。

4. 使用 Python 合成音频

项目通过 Python、NumPy 和 SciPy 等工具生成程序化音频。

这种方式可以根据 BPM、节拍位置、音符、音效和时间轴设计音乐,使声音与画面切换保持一致。

需要注意,程序合成音频并不等于生成完整的商业配乐。音色、编排和听感仍然需要设计与调整。

另外,项目当前提供的 synth_audio.py 示例主要用于生成短音频演示。要制作完整的长视频配乐,需要进一步配置音频编排。

5. 使用 FFmpeg 合成视频

当画面和音频准备完成后,使用 FFmpeg 进行视频编码和音画合成。

最终输出可以是常见的 MP4 文件,并根据需要设置:

  • 分辨率:1920 × 1080。
  • 帧率:30 FPS。
  • 视频编码:H.264。
  • 像素格式:yuv420p。
  • 音频编码:AAC。
  • 音频采样率:48 kHz。

这些是项目文档中介绍的目标规格,实际输出参数应以最终编码命令和文件检查结果为准。

四、安装 code-video-showcase

1. 安装前准备

项目主要依赖以下工具:

依赖 用途
Claude Code 理解任务、编写代码、执行 Skill 工作流
Node.js 20+ 运行渲染脚本
Playwright 控制浏览器并渲染画面
Chromium / Chrome / Edge 提供网页渲染能力
Python 3.10+ 执行音频合成脚本
NumPy / SciPy 数值计算与音频处理
FFmpeg / ffprobe 视频编码、合成和文件检查
本地字体 确保文字渲染效果符合设计要求

建议先确认这些工具的安装状态。浏览器、FFmpeg、Python 及字体缺失,都可能影响后续渲染。

2. 克隆项目

打开终端,执行:

git clone https://github.com/Moessif/code-video-showcase.git

进入项目目录:

cd code-video-showcase

3. 安装到 Claude Code

如果希望在个人的多个项目中使用,可以安装到用户级 Skill 目录。

Windows PowerShell 示例:

$skillDir = "$HOME\.claude\skills\code-video-showcase"

New-Item -ItemType Directory `
  -Force `
  -Path (Split-Path $skillDir) | Out-Null

Copy-Item `
  -Recurse `
  -Force `
  ".\*" `
  $skillDir

执行前,需要确认当前终端位于仓库根目录。

也可以直接将仓库克隆到用户级目录:

git clone `
  https://github.com/Moessif/code-video-showcase.git `
  "$HOME\.claude\skills\code-video-showcase"

如果只想在单个项目中使用,可以将 Skill 放在该项目的 .claude/skills/code-video-showcase/ 目录下。

安装完成后,确认目录中存在 SKILL.md。

提示:如果 Claude Code 已经打开,安装后建议重新启动会话,并让它检查是否能够识别这个 Skill。不要只根据目录存在就认定 Skill 已经成功触发。

五、安装之后如何使用?

安装 Skill 后,最重要的是理解它的使用方式。

它不是一个拥有独立图形界面的软件。通常的工作流程是:在 Claude Code 中描述你要制作的视频,让 Agent 阅读 Skill 的指引,再根据任务创建画面代码、音频脚本和渲染流程。

1. 先检查环境

在 Claude Code 中输入:

请检查 code-video-showcase Skill 是否已正确安装。

阅读 SKILL.md,检查 Node.js、Python、Playwright、
Chromium、FFmpeg 和 ffprobe 是否可用。

请列出已满足的依赖和缺失的依赖。
暂时只检查,不要生成视频。

这一步可以提前发现环境问题,避免后续渲染失败。

2. 让 Claude Code 制作第一支视频

第一次使用时,建议选择短视频作为测试目标。

例如:

请使用 code-video-showcase Skill,
制作一支 3 秒的前端技术展示视频。

要求:
1. 使用 1920×1080、30 FPS。
2. 使用深色背景和蓝色科技风格。
3. 展示 Vue、TypeScript、Nuxt 三个技术名称。
4. 使用动态文字和简洁的几何动画。
5. 画面使用 HTML、Canvas 或 SVG 编程绘制。
6. 不使用 AI 图像、视频或音乐生成模型。
7. 先渲染几张静帧供我检查。
8. 再生成完整的 3 秒 MP4。
9. 输出到当前工作区的 out/ 目录。

请实际执行渲染和视频检查。
如果遇到依赖或脚本错误,请先定位问题再修复。
最后报告视频的输出路径、时长、分辨率和帧率。

这里的关键不是提示词有多长,而是明确提出了制作目标、输出格式、检查步骤和最终交付要求。

3. 检查生成结果

视频生成后,不要只看 Claude Code 是否报告成功,还需要确认:

  • MP4 文件是否真实存在。
  • 文件能否正常播放。
  • 视频时长和帧率是否正确。
  • 中文字体和文字排版是否正常。
  • 动画是否存在跳帧、闪烁或突然消失。
  • 音频是否存在,以及是否与画面同步。

如果需要检查视频信息,可以使用:

ffprobe -v error \
  -show_entries format=duration \
  -show_entries stream=codec_name,width,height,r_frame_rate \
  -of default=noprint_wrappers=1 \
  out/01.mp4

这条命令用于查看视频时长、编码、分辨率和帧率等信息。

4. 再逐步扩展到完整视频

短片验证成功后,再让 Claude Code 增加场景、动画、转场和音频编排。

可以继续提出这样的需求:

请在当前视频项目基础上扩展到 15 秒。

要求:
1. 保留当前视觉风格。
2. 将视频拆分为多个独立片段。
3. 为每个片段定义明确的开始时间和结束时间。
4. 设计开场、主体展示和结尾。
5. 统一动画时间轴,避免片段之间出现时间跳跃。
6. 重新渲染所有片段并合成 MP4。
7. 检查最终视频时长、画面连续性和音画同步。

需要注意,Skill 提供的是制作框架和模板,并不意味着任意时长的视频都已经有完整的现成编排。Agent 仍然需要根据实际需求编写和调整代码。

六、手动运行渲染模板

如果希望进一步理解项目,或者需要独立调试,可以绕过自然语言工作流,直接运行模板脚本。

以下命令基于仓库 README 中的 Quick Start。实际使用时,应以仓库当前版本的文件结构和脚本参数为准。

1. 创建工作目录

在仓库根目录执行:

mkdir -p my-showcase/segments \
  my-showcase/shared \
  my-showcase/fonts \
  my-showcase/audio \
  my-showcase/out

cp templates/* my-showcase/
cp scripts/* my-showcase/

cd my-showcase
cp segment.html segments/01.html
cp common.js segments/

Windows 环境如果没有 Bash,可以使用 Git Bash 或 WSL 执行这组命令。

2. 安装 Playwright

npm install playwright

还需要确保 Playwright 能够启动可用的 Chromium 浏览器。具体安装方式应根据本机浏览器和 Playwright 的配置进行调整。

3. 渲染静帧

node render-segment.mjs \
  --page /segments/01.html \
  --still 0.2,0.8,1.4,2.0,2.6 \
  --outdir out/stills

这一步用于检查指定时间点的画面。

建议先查看静帧,确认布局、字体、颜色和动画状态符合预期,再执行完整视频渲染。

4. 渲染短视频

node render-segment.mjs \
  --page /segments/01.html \
  --out out/01.mp4 \
  --duration 3

如果输出成功,可以使用播放器检查视频,也可以使用 ffprobe 检查编码参数。

5. 音频合成与视频合成

项目提供 Python 音频脚本:

python3 synth_audio.py --out audio/demo.wav

它可以生成短音频演示,但不代表完整的 61 秒音频编排已经完成。

最终合成需要准备好片段清单、对应的音频文件和正确的路径,再调用:

./concat-and-encode.sh segments.txt audio/mix.wav out/final.mp4

其中 segments.txt、audio/mix.wav 和片段文件都必须按照脚本预期准备好。不要在没有检查脚本参数和清单格式的情况下,直接假设命令可以完成任意视频的合成。

七、项目的优势与局限

优势

1. 画面可控

与直接生成视频相比,代码绘制的文字、布局、图形和动画具有更高的可控性,适合技术演示、品牌展示和数据可视化。

2. 方便迭代

修改 HTML、CSS 或动画逻辑后,可以重新渲染指定时间点的画面,不必每次从头生成全部内容。

3. 不依赖生成式视频 API

核心工作流依赖本地代码、浏览器和 FFmpeg,不需要调用云端视频生成模型。

4. 适合前端开发者学习

如果熟悉 HTML、CSS、JavaScript 和 TypeScript,就可以利用已有的开发经验理解画面构建和动画逻辑。

局限

1. 不是一键生成成片的成熟编辑器

Skill 提供工作流和模板,但具体的视频内容仍然需要设计、编写、渲染和调试。

2. 不擅长复杂的真实影像

如果需求是人物表演、真实场景、电影级自然景观或复杂的实拍镜头,纯代码绘制通常不是最合适的方案。

3. 环境依赖较多

Node.js、Python、浏览器、FFmpeg 和字体等依赖需要正确配置,尤其是在 Windows、WSL 等不同环境中。

4. 画面质量取决于设计与实现

AI 可以协助编写动画代码,但不代表生成结果天然具备专业的构图、节奏和视觉层次。实际输出仍然需要检查和调整。

八、哪些人适合使用?

使用者 适合的用途
前端开发者 技术动画、程序化视觉实验、个人作品展示
独立开发者 产品宣传片、功能介绍视频
技术博主 编程原理、技术架构和数据流程演示
AI 工具研究者 探索 Agent 如何操作代码工具完成多步骤任务
视频创作者 制作动态文字、几何动画和节奏型视觉片段

如果你主要制作真人视频、实拍内容或复杂的影视作品,那么传统视频编辑软件或 AI 视频生成工具可能更加合适。

九、总结

code-video-showcase 展示了一种有意思的视频制作思路:将 AI Agent 的代码生成能力与前端动画、程序化音频和视频编码结合起来,让视频制作变成一个可以通过代码持续迭代的工程流程。

它的价值不只是生成一支视频,更在于提供了一套可研究、可修改、可扩展的程序化视频制作工作流。

对于前端开发者而言,学习成本相对可控:先从 HTML、CSS 和 Canvas 动画入手,再逐步理解逐帧渲染、音频时间轴与 FFmpeg 编码即可。

如果准备实际使用,建议从一个 3 秒的简单片段开始,验证整个链路,再逐步增加动画复杂度和视频时长。

项目地址: https://github.com/Moessif/code-video-showcase

参考资料:

© 2026 Carreyda