
一、为什么会做这个项目
最近我真正完成了自己的第一个 Vibe Coding 项目。
这个项目的目标很直接:
让一堆原始素材,自动变成一条能看的短视频。
不是简单拼几个镜头,而是尽可能完整地打通一条内容生产链路,包括:
- 自动切镜头
- 自动筛素材
- 自动匹配分镜
- 自动生成粗剪视频
- 自动生成讲解字幕
- 自动生成 AI 配音
- 自动生成小红书 / 抖音风格标题、简介和关键词
- 最后把视频、字幕、配音合成为成片
它现在还不是一个"商业级成品",但已经是一个真正能跑起来、能不断迭代的系统。
而最重要的是:
这个项目几乎是我和 AI 一起"对话式开发"出来的。
二、这个项目到底在做什么
我把整个系统拆成了 5 个阶段:

Stage 1:素材导入、切镜头、评分
先把原始视频素材统一导入,然后自动切镜头,给每个镜头打分,生成镜头级 JSON 数据。

这一步解决的是:
素材从"视频文件"变成"可计算、可检索的镜头数据"。

Stage 2:内容分析与精选池生成
有了镜头以后,系统会继续分析镜头内容:
- 画面主体是什么
- 有没有人物
- 是特写、中景还是大景
- 是否适合做开场、细节、氛围、人物段落
- 适合什么画幅
然后再做相似镜头去重、质量筛选,形成一个更干净的"精选镜头池"。
这一步解决的是:
素材从"可用"变成"可挑选"。

Stage 3:自动检索与粗剪
这一阶段是整个系统的核心。
用户给一个主题,例如:
- `NovaArk诺瓦城二次元打卡地``
系统会自动:
- 扩展主题词和关键词
- 从精选池中召回候选镜头
- 生成 storyboard
- 按 opening / people / detail / mood / ending 的结构匹配镜头
- 生成
rough_cut.json - 输出
preview.mp4

到这一步,已经能得到一条真正可以观看的粗剪预览视频。
bash
TITLE: AUTO_EDIT_PREVIEW
FCM: NON-DROP FRAME
001 微信视频2026 V C 00:00:03:12 00:00:08:21 00:00:00:00 00:00:05:09
002 微信视频2026 V C 00:00:00:00 00:00:02:16 00:00:05:09 00:00:08:00
003 微信视频2026 V C 00:00:03:06 00:00:04:16 00:00:08:00 00:00:09:10
004 微信视频2026 V C 00:00:03:19 00:00:08:07 00:00:09:10 00:00:13:23
005 微信视频2026 V C 00:00:00:00 00:00:11:12 00:00:13:23 00:00:25:10
006 微信视频2026 V C 00:00:00:00 00:00:04:22 00:00:25:10 00:00:30:07
007 微信视频2026 V C 00:00:00:00 00:00:09:03 00:00:30:07 00:00:39:10
008 微信视频2026 V C 00:00:00:00 00:00:05:23 00:00:39:10 00:00:45:09
009 微信视频2026 V C 00:00:00:00 00:00:05:01 00:00:45:08 00:00:50:10
Stage 4:自动生成讲解、字幕、配音和平台文案
在粗剪结果出来以后,系统会继续往"内容包装"层走:
- 生成项目介绍型讲解稿
- 生成字幕
subtitles.srt - 自动调用 TTS 生成独立配音音轨
- 自动生成小红书 / 抖音风格的标题、介绍、关键词
这一步的意义是:
系统不只是会剪视频,还开始具备自动组织内容表达的能力。
bash
1
00:00:00,000 --> 00:00:08,000
NovaArk诺瓦城,以机械入口开启二次元科幻空间。
2
00:00:08,000 --> 00:00:09,390
光效上线。
3
00:00:09,390 --> 00:00:25,390
这里不只是看展,更像走进可互动、可出片的未来感打卡副本。
4
00:00:25,390 --> 00:00:39,390
几何霓虹与蓝紫灯光叠加,直接把神秘、冷感与沉浸氛围拉满。
5
00:00:39,390 --> 00:00:50,390
再加上复古机械布景,让整个空间更有故事感与停留价值。
Stage 5:最终合成成片
最后一步是把:
preview.mp4- 字幕
- AI 配音
合成为最终成片。
诺瓦城50s
虽然这一步目前还在持续优化,但从素材到成片的闭环已经跑通了。
三、为什么我觉得它很像 Vibe Coding
我觉得真正的 Vibe Coding,不只是"用了 AI 写代码",而是:
1. 需求不是一开始就写清楚的,而是在对话中逐渐长出来的
一开始我只知道自己想做一个自动粗剪系统,但真正做起来才发现里面有很多问题:
- 横竖屏素材如何统一处理
- 视频看起来是竖屏,编码却是横屏怎么办
- 为什么 9:16 的素材到了 9:16 输出反而匹配不到
- 为什么 preview 时长总是比设定时长短
- 为什么最后几镜节奏会很仓促
- 为什么字幕像在"讲画面",而不是在做项目介绍
- 为什么配音和字幕时间对不上
- 为什么最终视频合成会卡住
这些都不是预先规划完整的,而是系统跑起来以后一步步暴露出来,再一步步修掉的。
这正是 Vibe Coding 最真实的部分:
不是一次性设计完,而是在不断反馈中塑造系统。
2. AI 更像结对开发者,而不是单纯代码生成器
很多时候,AI 不是替我"写完一个功能",而是帮我:
- 快速梳理代码链路
- 从日志里定位问题
- 区分到底是素材问题、坐标系问题、导出策略问题还是依赖环境问题
- 把模糊的想法落实成具体结构
这类复杂系统,不是一两个函数的问题,而是整个链路的理解问题。
而 AI 在这里更像一个一直陪你调系统的搭档。
3. 项目不是一条直线,而是一张网
原本以为自己做的是"自动剪视频",后来发现它其实是一整张网:
- 画面识别
- 检索召回
- 分镜结构
- 配乐
- 配音
- 字幕
- 平台文案
- 最终合成
每修一个点,都会影响别的点。
也正因为如此,我更能感受到:
AI Coding 真正有价值的地方,不是帮你多写几个函数,而是能陪你在复杂系统里持续收敛问题。
四、这个项目里我踩过的一些坑
1. 看起来是横屏的视频,实际可能是竖屏
有些素材编码分辨率是 1920x1080,但播放时由于旋转信息,真实显示方向其实是 1080x1920。
如果只看文件宽高,整条链路都会判断错。后面补了旋转识别和显示层宽高逻辑,才把这个问题理顺。
2. 系统能选出镜头,不代表结果看起来就对
有时候日志显示:
- 候选数够
- 比例也命中了
- timeline 也生成了
但最终 preview.mp4 看起来依然不理想。说明"技术上通过"和"内容上好看"之间,还差很多细节调优。
3. 语音和字幕对齐,比想象中复杂
一开始我以为:有字幕时间轴 + 有 TTS 音频,就能直接合成。
后来才发现:
- 音频时长不一定和文本时长完全一致
- 最后一段经常来不及读完
- 简单顺序拼接并不能自动对齐字幕时间轴
最后又把 Stage 5 重构了一次,把独立音轨按时间轴铺好,再做最终合成。
4. 自动生成字幕,不等于自动生成"好字幕"
早期字幕更像"画面解说",逐句描述镜头里发生了什么。
但真正适合内容传播的往往不是"镜头里有机械臂",而是:
这个项目是什么,它为什么值得体验,它的亮点是什么。
后来我把 Stage 4 改成默认生成"项目介绍型字幕",整体表达才更像一条能发出去的内容。
五、我为什么还会继续做下去
因为这个项目让我第一次很强烈地感受到:
AI 编程不只是效率工具
它更像是一个"放大器"。
它放大的不是代码量,而是你把一个模糊想法不断推进成系统的能力。
以前可能会因为一个项目牵涉太多模块、太多细节,而迟迟不开始。
现在你可以先让它跑起来,再一点点把问题磨对。
这件事带来的改变非常大。
六、我现在怎么看我的第一个 Vibe Coding 项目
如果用一句话概括:
它不是一个完美产品,但它已经是一个真实运行、可持续进化的系统。
对我来说,这比做出一个静态 demo 更重要。
因为这意味着:
- 我不仅做出了东西
- 还做出了一个能继续改、继续长、继续试错的东西
而这恰恰是我觉得最有价值的部分。
七、后面我还想继续做什么
接下来我还想继续完善这些方向:
- 更稳定的横竖屏选材逻辑
- 更自然的镜头节奏控制
- 更强的长视频粗剪能力
- 更智能的字幕压缩和配音对齐
- 更成熟的混音策略
- 更像真实平台运营需求的小红书 / 抖音文案生成
- 甚至加入更完整的"内容包装自动化"能力
也许它以后不只是一个自动剪视频系统,而会变成一个更完整的内容生产工作流。
八、结尾
这是我的第一个 Vibe Coding 项目。
它没有一开始就规划完美,
也不是一口气做完的,
而是我和 AI 一起,一轮轮对话、一轮轮报错、一轮轮修正,慢慢长出来的。
如果说以前写代码更像"搭积木",
那这次更像是"和一个不会累的搭档一起做产品"。
而这,可能只是一个开始。