视频拆片·脚本还原(Video Script Breakdown)
一句话定位
本地视频文件 → ffprobe 探测参数 → ffmpeg 智能抽帧 → agent 多模态逐帧读图(画面 + 字幕台词 + 人物情绪)→ 输出「拆片报告 + 导演级 9 列分镜头脚本」Markdown。
触发场景
- "拆解这个视频" / "把这个视频还原成脚本" / "分析这条片子的画面和台词"
- 用户提供本地视频文件路径(mp4/mov/mkv/avi/webm 等常见格式)并要求提取画面 / 台词 / 情绪 / 生成脚本
- 对标视频拆片、竞品分析、成片复盘
不支持:直接给抖音等平台链接要求自动下载(平台风控拦截,免登录下载通道均不可用)。链接场景必须先让用户自行保存视频到本地再提供文件路径。
环境依赖:ffmpeg 自动探测(核心)
技能只依赖一个外部工具:ffmpeg 套件(ffmpeg + ffprobe)。执行前按以下顺序探测,命中即用:
- 系统 PATH:
ffmpeg -version/ffprobe -version直接可执行 - 常见安装路径(按平台):
- Windows:%USERPROFILE%\.workbuddy\tools\ffmpeg\ffmpeg.exe、C:\ffmpeg\bin\ffmpeg.exe
- macOS:/opt/homebrew/bin/ffmpeg、/usr/local/bin/ffmpeg
- Linux:/usr/bin/ffmpeg、/usr/local/bin/ffmpeg
探测失败时的安装引导(强制规则):
> ⚠️ 安装任何软件、工具、依赖包之前,必须先向用户说明并获得明确确认,禁止擅自安装。
征得同意后按平台安装:
- Windows:winget install ffmpeg,或下载官方静态编译包 https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip 解压使用
- macOS:brew install ffmpeg
- Linux:sudo apt install ffmpeg 或对应发行版包管理器
执行流程
1. 探测视频参数
"<ffprobe路径>" -v error \
-show_entries format=duration,size:stream=codec_type,width,height,r_frame_rate \
-of default=noprint_wrappers=1 "视频路径.mp4"
记录:时长、分辨率、帧率、是否有音轨。
2. 智能抽帧
抽帧密度按视频时长自适应:
| 视频时长 | 抽帧密度 |
|---|---|
| ≤30 秒 | 每 1 秒 1 帧(默认) |
| 30–120 秒 | 每 2 秒 1 帧 |
| >120 秒 | 每 3–5 秒 1 帧,并提示用户可指定重点时间段 |
mkdir -p "抽帧输出目录" && cd "抽帧输出目录" && \
"<ffmpeg路径>" -v error -i "视频路径.mp4" \
-vf "fps=1,scale=960:-1" -q:v 3 frame_%02d.jpg -y
> 抽帧目录:工作区下 _视频名_frames/;缩放至 960 宽——识图足够清晰且节约上下文。
3. 逐帧识图(agent 多模态)
- 用 Read 工具逐张读帧(可分批并行读取)
- 每帧提取:景别构图、角色动作表情、画面上的全部字幕文字(双轨字幕需区分顶部金句轨 / 底部台词轨)、情绪状态
- 逐帧读完后若跳读了部分帧,必须补齐,避免漏台词(台词切换比镜头切换快)
- 诚实标注:抽帧是定格照片——细腻动作过程标"按上下文推断",禁止脑补未出现的画面
4. 输出拆片报告(Markdown 文件)
标准结构:
- 视频规格(时长 / 分辨率 / 帧率)
- 一句话定位(题材/类型定位,用行业通用语言:温暖反转、治愈系、悬念式、纪实等)
- 角色与场景表
- 全片台词(按时序)
- 旁白/金句轨(按时序)
- 分镜头脚本表(业界导演标准,9 列固定列项,不可缺省)
- 结构拆解(钩子→冲突→爆点→落点)
- 可复用工艺要点
分镜头脚本表 9 列定义:
| 列 | 内容要求 | 抽帧识图填写方法 |
|---|---|---|
| 镜号 | Shot number,全片顺序编号 | 按镜头切换顺序编号 |
| 景别 | 远景/全景/中景/近景/特写 | 按画面中人物占比判断 |
| 角度与机位 | 平视/俯拍/仰拍/过肩/主观视角 | 按人物透视与视线关系推断 |
| 运镜 | 固定/推/拉/摇/移/跟/升降 | 对比相邻帧画面变化推断;无法确定标"固定(按帧推断)",禁止瞎猜 |
| 画面内容 | 该镜头发生什么、角色动作与走位 | 逐帧识图客观描述 |
| 台词/旁白 | 声画对位:哪句话压在哪个镜头 | 从画面字幕读取;多轨字幕分开标注 |
| 声音 | 音效点、配乐进出、静默 | 画面无法读取时标"待听审"(抽帧无声,禁止编造音效) |
| 时长 | 该镜头秒数(精确到 0.5s) | 由帧号换算(帧 n ≈ n-0.5s) |
| 备注 | 道具、特效点、情绪爆点秒数等 | 情绪爆点(泪珠/表情突变)必须标精确秒数 |
产物以文件形式交付给用户,抽帧目录路径在文末注明。
关键经验
- 字幕向视频(台词烧在画面里)无需语音转录,抽帧识图即可还原全部台词
- 尾卡两类都要识别:创作者自制尾卡(黑底头像+点赞关注评论)和平台官方尾卡(如抖音「大家都在抖音」+搜索词+二维码),均不纳入剧情分镜,在分镜表末行单独记录
- 情绪爆点(泪珠/表情突变)标注精确时间轴位置,这是完播率分析的关键锚点
- 分镜表 9 列一列不缺——「运镜」「声音」两列抽帧无法直接观测:运镜靠相邻帧对比推断并如实标注;声音默认标"待听审",用户需要时可另走音频提取流程
- 全程只读不写源文件:视频原文件零改动,抽帧产物独立存放