松哥拆管理 C 线视频生产流水线
一次调用,从脚本到成片。 全部参数已在 C6-C12 上验证通过,不要随意改。
v1.10.0 变更:新增 2.3「交付执行包时写清挂哪篇,别写秒数」——执行包只写「11-10 第 13 篇文末挂本条」,不写视频时长;起因是三篇文末秒数全部与成片不符(80/80/84 vs 84.8/83.8/81.8),都是"做视频时估的、成片后没人回头改"。
v1.9.0 变更:① 口径红线补 C-01~C-09 禁用结论(C-01「注定走向灭亡」天生像金句,最易混进 3 秒钩子)+ 写"有效性"不写"效能";② 新增 2.1「多开一季时视频不必与文章一一对应」——十讲 10 篇只配 4 条,判断标准(能一口气讲清的配/偏概念的只写长文/一鱼两吃的避开);③ 新增 2.2「料不够时把我不装内行放开头」——放结尾像骗人,放开头后面每句都可信,坦白本身成为内容。
v1.8.0 变更:① 八项口径更正(八项也是德鲁克的,2004 HBR;②项是「对企业整体对不对」);② 句数不再写死 15——16 句也走同一流水线(frames.json 的 plan 项数 = 台词句数);③ 新增「改字幕必重生成静态帧」铁律;④ 每句抽帧核对流程标准化。
v1.7.0 变更:① scripts/finalize.py 一条龙(srt+封面+抽帧质检);② scripts/check_script.py 台词机检;③ 出图/TTS 脚本加 --flag 容错(误传不再污染目录);④ 全文按动感版主线重排,静态版降级附录;⑤ 新增发布后数据回填。
第 0 步|开场先看记忆卡(★ 2026-11-01 强制)
任何一次涉及松哥的对话,先跑 python3 "/workspace/00 常驻记忆卡.py"。
含:口径底线(五项/八项归属)、四条铁规、同步真相、踩坑清单、自动核对。
用户明确要求:"不要让我提醒。"出过一次的事故必须当天写进那张卡的第五节。
0. 铁律(违反必返工)
| 项 | 规定 |
|---|---|
| 尺寸 | 1920×1080 横屏,30fps,h264 high/4.0,crf 19,yuv420p,aac 128k |
| 版式 | 藏青底 (28,45,75) + 左白卡 820×630 + 右松哥 1000px 高 + 底部居中字幕 |
| 字幕 | N 句 = N 帧 baked-in(标准 15 句 = 13 台词 + 预告帧 + 关注帧;扩到 16 句同理,C16 已跑通),不许 overlay 挂流(会错位);另出 .srt 供视频号上传"字幕"栏使用(上传时导入,不烧进画面) |
| 文件名 | 禁止 + & 空格(客户端打不开),用中文或下划线 |
| 出图 | 硅基流动 Kolors 1024×768(10-26 定版高配标准);禁豆包;pollinations 仅降级备选 |
| 名人图 | 德鲁克/书桌等沿用 C3/C5 原版抠图(assets/),不重画 |
| BGM | 音量 0.10,afade=t=in:st=4.5:d=2(早于 4.5s 与首句混成回声) |
| 后台执行 | 出图/渲染等长任务全部 run_in_background=true,用户切 App/锁屏不得中断 |
| 改字幕 | 必须重跑 compose_frames.py 再合片。build_video.py 读的是 frames/fsNN.png(静态帧),只重渲 motion/fsNN.mp4 不改帧 → 成片还是旧字幕(2026-11-01 C12/C13 踩坑) |
| 句数 | 不写死 15。16 句 = 16 帧 = 16 条字幕,frames.json 的 plan 写几项就出几帧;finalize.py 的 assert ... == 15 在非 15 句时手工生成 srt |
1. 标准流程(9 步,动感版主线)
第 1 步|写脚本
lines15.json(台词,句数按需,C16 为 16 句)+ scenes.json(图提示词,张数 ≤ 句数)+ frames.json(帧计划,项数必须等于台词句数)。
样本照 references/c6-scripts.md(C10 最新四节拍样本)。
开场句硬规则(10-31 金句库接入):【0-3s 钩子】那一句必须从金句库「一、开场钩子」8 条里挑,不许现编。
- 写前必读 /workspace/00 原书与出处/ 下三份:写作规则摘要.md(人设红线/钩子/八项顺序)、已核实原文摘录.md(引原文唯一依据)、金句库.md(开场取用源)
- 库文件:/workspace/00 原书与出处/金句库.md(用户原创,已发文章抽取)
- 原则:不改写、不润色、不"优化"——原句照念;脚本里标注篇号(如「出处:第 9 篇」)
- 库里没有合适的才现写,写明"新拟,建议补录"并单列给用户
- 开场避重:最近 3 条视频不重复同一篇来源(见库「十一」)
- 引原文前必读 /workspace/00 原书与出处/已核实原文摘录.md:没核过的不能说"德鲁克说";「沟通四原则」出自《管理》、"听见没说出口的话"出自 Moyers 访谈录、不是本书正文——别标错书
- 每篇写完自查「六、禁用清单」:禁用词(赋能/抓手/闭环/底层逻辑/认知/维度/颗粒度/打法/组合拳)、禁用句式、结尾不升华、不排比三连;"不是…是…"按上下文定,不设硬上限(看有没有变套路,不数次数)
第 2 步|台词机检(TTS 前强制)
python3 scripts/check_script.py <lines.json> [scenes.json]
查:引号口径、德鲁克归属、相对时间、AI 腔套话、句长(>25 字提示)、句数与预告/关注句位置。FAIL 先修再 TTS。四道关事实核查(引用 songge-factcheck)同步过,出具核查记录——涉及五项/八项必过第二关框架归属附表。
第 3 步|脚本四节拍(10-29 定版,C10 起强制)
详见 references/视频脚本模板.md:【0-3s 钩子】反常识或带数字;【3-15s 场景】一个人+一个具体时刻,说"他"不说"我们";【15-50s 拆一层】一个观点+一个证据;【50-75s 反转+落点】"但不是所有…都…"边界句 + 15 字落点。注意:别念文章、每句≤12 字(上限 25,超了断句)、开头不自我介绍。语言:口语化+去 AI 味,读出声像聊天过关。写作模板速查是文章线专用,视频线只用本模板。
第 4 步|出图(13 张)
SILICONFLOW_KEY=sk-xxx python3 scripts/gen_images.py <输出目录> <scenes.json> # 后台
- 负向词与风格串已内置脚本(New Yorker 黑白线稿);429 限流:代码内 4 次重试间隔 25s,批量失败时用 40s 间隔单图重跑
- 出图后必查:①无文字/水印 ②语义不矛盾 ③主体不错位;跑偏重出
- 连续同主题句必须换图(10-26 定版)
第 5 步|图片质检清洗
灰度+裁边(右 30/底 60)+ 方差 >800 质检(参照各工作目录 clean.py 做法原地清洗)。注意:AI 水印在右下角,按 10-31 用户决定保留(合规《AI 生成合成内容标识办法》),裁边不得为去水印而裁。
第 6 步|TTS + 时间轴
/usr/bin/python3 scripts/tts_timeline.py <工作目录> <lines15.json> # 必须系统 python(有 edge_tts)
云健 zh-CN-YunjianNeural,rate=+15%(10-26 定版)。串行+6 次退避重试(并发 503)。产出 s00-s14.mp3 + timeline.json + cues.txt。改语速/改台词 = 重跑 TTS + 全段重渲染。
第 7 步|15 帧合成 + 渲染 + 拼接
python3 scripts/compose_frames.py <wd> <frames.json> # 15 帧
for i in 0..14: /usr/bin/python3 scripts/render_seg.py <wd> <frames.json> $i # 5 个一批后台并行
/usr/bin/python3 scripts/tpad_fix.py <wd> # 拼接前必跑!必须显式传工作目录
/usr/bin/python3 scripts/build_motion.py <wd> <输出.mp4> # xfade+BGM 混音
- 动效:Ken Burns zoom 1.0→1.06+pan、卡片淡入、金色关键词高亮字幕、松哥微呼吸(1.0→1.012)
- tpad 不跑会黑屏/成片只剩几秒(10-28 C8 踩坑:脚本默认目录是 C7 旧路径)
- 结尾三帧节奏:正文末帧 END → 预告帧下集主题新图(埋视觉钩子,不重画名人图)→ 关注帧 END 书桌图;seg_of 句14/15 归末段,tail=2.0
- 构图细节(勿改):白卡圆角 10 位置 (20,110)-(840,740);texture() 正片叠底+噪声 σ=6+晕影——禁止换公式(曾全白卡);松哥 x=W-w-8, y=H-h+20;顶栏"松哥拆管理"白+第 N 集金 (238,178,70);字幕贴 (0, H-h-46)
第 8 步|finalize(一条龙,v1.7.0 新增)
python3 scripts/finalize.py <wd>
产出 C字幕.srt(按 timeline 重生成,不用旧 srt)+ C封面.png(1080×1264 竖版,C9 确认的标准版式:深蓝底+左金竖条+顶红细条+白/金两行大标题+灰副标+金句落点+右上红底时长角标+底部「松哥拆管理」白粗+「德鲁克《卓有成效的管理者》拆解 · 第N篇」金色两行;编号口径=连载第N篇(与公众号一致),禁用「新季/第N条」等内部说法)+ qc_1-5.png 抽帧,并打印自检清单。人工复核:抽帧字幕与配音逐句对位(重点最后 3 句)、首句无回声、姿态有变化无"棍子手"、时长 ffprobe==timeline.total。
第 9 步|交付 + 数据回填
- 独立执行包
执行包-日期-CN视频.txt(10-27 定版必出):发布信息/标题/描述/标签/合集、发布后 30 分钟动作(置顶自评+回评模板×3)、朋友圈转发语、联动核对(文末挂卡/预告帧指向)、节奏备忘 - 全套进
/workspace/0-今日发布-MM-DD/(成片+封面+srt+执行包;旧版移旧版/子目录);文件名无+ &空格 present_files预览- 发布 48h 后数据回填
/workspace/数据复盘.md视频表(v1.7.0 新增):完播率/点赞/转发/关注转化,按"前 3 秒钩子类型"归类。完播率是视频号推荐第一权重;连续 2 条某类钩子完播跑输 → 在本技能第 3 步追加备注
2. 口径与内容红线(与文章线一致)
- 五项出自德鲁克《卓有成效的管理者》(1966);八项也是德鲁克的,出自 HBR 2004《What Makes an Effective Executive》。相隔 38 年,同一人两次总结。八项 ≠ 五项 + 三项,两套有重叠但不互相包含,绝不混讲(2026-11-01 ima 验稿更正,详见
/workspace/00 原书与出处/写作规则摘要.md第五节) - C-01~C-09 禁用结论:九条既成事实,台词里一句不许出现(清单见
songge-factcheck第五关)。特别是 C-01「注定走向灭亡」——它天生像金句,最容易在 3 秒钩子里被用上 - 写"有效性",不写"效能";"效率是把事情做对,有效性是做对的事情"是通俗概括,不是原话
- "德鲁克说"仅限核对过原书的话;数据/事件注明来源与时间;过强表述(只有/一定/没人/从不)逐个清理
- 预告帧指向的视频必须与排期表核对一致(改排期先改表:
songge-schedule-check) - 与已发内容的相对时间("上个月我旁听…")按发布日核对
2.1 多开一季时,视频不必与文章一一对应(★ 2026-11-01 新增)
季 2(十讲十个关键词)十篇文只配 4 条视频,不是 10 条。判断标准:
- 能一口气讲清的配:#03 使命("你们公司是干什么的")、#06 成果("绩效是你演完了,成果是有人买了票")、#09 优势("什么事你不费劲就做好、别人做不好")、#10 管理者("我不是领导,算管理者吗")
- 偏概念的只写长文:贡献/创业/价值/目标/组织——这些词在 60 秒里讲不成一个具体动作
- 一鱼两吃的要避开:#10 管理者 = 主题地图第 3 主题同一件事,视频讲了文章就不重复讲
2.2 料不够时,把"我不装内行"放开头(★ 2026-11-01 新增,硬规)
某个关键词的原文只有 1–2 条(如 #09 优势是 C 档),视频里必须开头就交代:
> 这条视频我只讲我确定的部分。"优势"这个关键词,我手上只有 2 条德鲁克原文,其余是熊小年的说法——我标清楚,你自己判断。
放开头 vs 放结尾,效果相反:
- 放结尾 → 前面 50 秒像在骗人,观众发现后觉得被耍
- 放开头 → 后面每句话都可信,而且"坦白"本身成了内容
判据:一条视频如果只靠一条原文撑,别硬撑成"讲道理",改成"讲我怎么看"。
2.3 交付执行包时,写清"挂哪篇",别写秒数(★ 2026-11-05 新增,硬规)
视频执行包的「联动核对」里要写明这条视频发完后挂到哪一篇公众号文末,但不写视频时长(不写"这条 82 秒")。
- 要写的:
11-10 第 13 篇文末挂本条视频卡(篇号 + 日期,够用且不会错) - 不要写的:任何秒数。用户 11-05 定规:C17 起所有文章文末不写秒数,视频包也别再自报
- 为什么:秒数是内部参数,写出去就要维护;第 13/14/15 篇三篇秒数全部与成片不符(80/80/84 vs 84.8/83.8/81.8),都是"做视频时估的、成片后没人回头改"
- 挂卡有时效:定时中的视频在公众号编辑器里搜不到,必须发出后立刻补挂,最长拖到当天晚(详见文章线
songge-article第 5 步)
3. 静态版(降级备选,动感版失败时用)
scripts/build_video.py <wd> <out.mp4>:切点=cue_start-0.35,XF=0.3,音频 13 句 adelay+amix,BGM 同铁律。输出后 ffprobe 核对时长误差 <0.05s。默认不用,用户点名"静态版"才走。
4. 环境要点
- 必须用 imageio 内置 ffmpeg(系统 ffmpeg 无 libx264):
export FFMPEG=$(ls /usr/local/lib/python3*/dist-packages/imageio_ffmpeg/binaries/ffmpeg-linux-x86_64-*) - 依赖:edge-tts(TTS)、numpy/Pillow(帧合成)
- API Key:硅基流动 Key 向用户索取(10-26 提供过 sk-kinmt…开头)
- 脚本已加
--flag容错:误传--lines x会被丢弃而不是建出--lines目录(10-31 C16 踩坑);但仍按位置参数传:脚本 <目录> <json>
参考
references/pitfalls.md:全部踩坑记录(必读)references/视频脚本模板.md:四节拍脚本模板(10-29 定版)references/c6-scripts.md:C10 完整脚本+场景提示词样本(四节拍验证版)scripts/finalize.py/scripts/check_script.py:finalize 一条龙 / 台词机检- 联动技能:
songge-factcheck、songge-article(口径红线来源)、songge-schedule-check(预告指向核对)
> 市场版说明:本包仅含 SKILL.md/脚本/参考文档。assets/(松哥抠图、德鲁克原版图、END 书桌图、bgm.mp3)为私有素材,不含在市场包中——使用时向技能作者索取,或用自己的素材替换(脚本通过路径参数引用)。