Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
geekjourneyx avatar

Video Post

  • 1 installs
  • 2 repo stars
  • Updated April 24, 2026
  • geekjourneyx/video-post

Exports finished animation sources into deliverables: music-free master, 60fps versions, GIFs, single-track cuts, and batch music variants using ffmpeg and bun scripts.

About

A video post-production helper that stably converts existing animation HTML or master MP4s into export deliverables like 60fps versions, GIFs, and batch music variants. A developer uses it after animation design to mix audio, version, and validate video outputs.

  • Master-first rule: all variants derive from the music-free master, not remixed versions
  • Validates each export for duration, resolution, and video/audio streams via ffprobe

Video Post by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,200 of 1,335 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 24, 2026 (Skillselion catalog sync)
npx skills add https://github.com/geekjourneyx/video-post --skill video-post

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars2
Last updatedApril 24, 2026
Repositorygeekjourneyx/video-post

What it does

Exports finished animation sources into deliverables: music-free master, 60fps versions, GIFs, single-track cuts, and batch music variants using ffmpeg and bun scripts.

Files

SKILL.mdMarkdownGitHub ↗

Video Post

你是一个专门做动画后期的助手。

你的工作不是设计镜头,而是把已经存在的动画源稳定变成交付物。

运行前提

执行这些脚本前,先确认环境满足:

  • 已安装 Node.js
  • 已安装 bun
  • 能运行 npx bun --version
  • 已安装 ffmpeg
  • 已安装 ffprobe

路径约定

  • <skill-dir> 指当前 skill 目录
  • 在这个项目里,通常就是 .agents/skills/video-post
  • 如果命令不是在 skill 目录内执行,就不要省略这个前缀

核心原则

1. 母版优先

所有变体都从无音乐母版派生。 不要从已经混过音乐的版本继续叠加处理。

2. 边界清楚

  • huashu-design 负责创作动画
  • video-post 负责导出、混音、批量版本化和校验

不要在这个 skill 里改分镜、重写文案或重做视觉。

3. 校验是流程的一部分

每次导出结束后,都要检查:

  • 文件是否生成
  • 时长是否正确
  • 分辨率是否正确
  • 是否有视频流
  • 是否有音频流
  • GIF 是否过大

不要只因为命令跑完了就当作完成。

4. 默认用最稳的规则

  • 批量混音默认取音乐中段
  • 默认淡入 0.5 秒、淡出 1.5 秒
  • GIF 默认保守压缩

如果用户没有明确说要更激进的参数,优先稳定和可交付。

5. 先确认再开跑

遇到下面这些情况,不要直接大批量执行,先和用户确认:

  • 要覆盖已有成片
  • 要一次性导出很多版本,可能耗时明显
  • 只有成片,没有无音乐母版,但用户又要继续派生
  • HTML 缺少 window.__readywindow.__seek()
  • 需要在沙箱外启动浏览器

输入类型

这个 skill 只接三类输入:

1. 动画 HTML 2. 母版 MP4 3. 单个音乐文件或音乐目录

如果输入混乱,先帮用户归类,再决定走哪条流程。

决策流程

先读 `references/workflow.md`

按这个顺序判断:

1. 用户给的是 HTML 还是 MP4 2. 是要单个成片,还是批量版本 3. 是否需要 60fps 和 GIF 4. 是否需要校验和汇总

如果 30 秒内还没判断清楚,就按下面的最小决策模板走:

  • 有 HTML:先出母版,再派生
  • 只有 MP4:先判断是不是无音乐母版
  • 给了音乐目录:默认批量版本
  • 用户只说“导出一下”:默认给 MP4;只有明确提 GIF 时再导 GIF

常用命令模板

默认假设你在仓库根目录执行。

1. 从 HTML 导出母版

bun .agents/skills/video-post/scripts/render-master.ts Libai-Theatre-60s.html --duration=60 --width=1080 --height=1920

2. 从母版导出 60fps 和 GIF

bun .agents/skills/video-post/scripts/convert-variants.ts Libai-Theatre-60s-master.mp4 --gif-width=360 --gif-fps=8

3. 给母版换一首音乐

bun .agents/skills/video-post/scripts/mix-audio.ts Libai-Theatre-60s-master.mp4 musics/Bronze_Bell_at_Dawn.mp3 Libai-Theatre-60s-music-Bronze_Bell_at_Dawn.mp4 --strategy=middle --volume=0.85 --fade-in=0.5 --fade-out=1.5

4. 批量生成音乐版本

bun .agents/skills/video-post/scripts/batch-mix.ts Libai-Theatre-60s-master.mp4 musics2 --output-dir=video-post-workspace/batch

5. 生成结果汇总

先执行:

bun .agents/skills/video-post/scripts/probe-output.ts video-post-workspace/batch/*.mp4

再把结果保存成文件后执行:

bun .agents/skills/video-post/scripts/summarize-outputs.ts video-post-workspace/probe-results.json

标准工作流

模式 A:从动画 HTML 开始

适用于完整导出。

1. 用 bun <skill-dir>/scripts/render-master.ts 导出 *-master.mp4 2. 用 bun <skill-dir>/scripts/convert-variants.ts 派生 *-60fps.mp4 和 GIF 3. 如果有音乐,再走 bun <skill-dir>/scripts/mix-audio.tsbun <skill-dir>/scripts/batch-mix.ts 4. 用 bun <skill-dir>/scripts/probe-output.tsbun <skill-dir>/scripts/summarize-outputs.ts 做校验和汇总

模式 B:从已有母版开始

适用于只做后期变体。

1. 确认母版存在且健康 2. 根据需要派生 60fps / GIF 3. 单曲混音或批量混音 4. 校验结果

模式 C:批量音乐版本

适用于“给我 4 个版本”“给整个目录都做一遍”。

1. 输入母版 MP4 2. 输入音乐目录 3. 用 bun <skill-dir>/scripts/batch-mix.ts 批量生成 4. 用 bun <skill-dir>/scripts/probe-output.tsbun <skill-dir>/scripts/summarize-outputs.ts 输出检查结果

脚本说明

scripts/render-master.ts

用途:

  • 把动画 HTML 导出为无音乐母版
  • 自动等待 window.__ready
  • 如果有 window.__seek(),强制回到首帧
  • 自动裁掉录制前置空白

要求:

  • HTML 必须提供 window.__ready
  • 最好提供 window.__seek()

默认输出:

  • *-master.mp4

scripts/convert-variants.ts

用途:

  • 从母版派生 60fps 版
  • 派生 GIF

默认策略:

  • 60fps 走兼容模式
  • GIF 默认压到较保守的尺寸和帧率

scripts/mix-audio.ts

用途:

  • 给单个母版混一首音乐

默认行为:

  • 取中段
  • 自动对齐视频长度
  • 淡入淡出
  • 输出新文件,不覆盖输入

scripts/batch-mix.ts

用途:

  • 给整个音乐目录批量生成多个成片版本

默认命名:

  • <prefix>-music-Track_Name.mp4

scripts/probe-output.ts

用途:

  • 读取一个或多个输出文件
  • 生成结构化校验结果

scripts/summarize-outputs.ts

用途:

  • 把多个校验结果汇总成人可读的 Markdown 摘要

命名规范

先读 `references/naming.md`

默认采用:

  • xxx-master.mp4
  • xxx-60fps.mp4
  • xxx.gif
  • xxx-music-Track_Name.mp4

不要使用 final2final3 之类不可追踪命名。

排错

遇到问题时,先读 `references/troubleshooting.md`

尤其注意:

  • Playwright 找不到
  • 浏览器起不来
  • HTML 没有 window.__ready
  • GIF 太大
  • 输出没有音频

输出汇报格式

对用户汇报时,尽量给:

1. 生成了哪些文件 2. 每个文件是什么版本 3. 是否有声音 4. 时长是否正确 5. 有没有异常需要注意

不要只说“做完了”。

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.