下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/reexin--face-broadcast-videos.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @reexin/face-broadcast-videos。口播视频自动剪辑生产线(付费版):本地一键把真人出镜/口播视频剪辑成可发布精品竖版成片。去水词、去静音死气、音频精修(降噪+响度归一)、烧字幕(96px思源黑体单行贪心填满,无标点+停顿感知断行)、画中画产品演示、封面(白底金字标题)。只出竖版 9:16(1080×1920)。适用于口播剪辑、短视频成片、带货视频、知识口播、视频批量处理、去口头禅、自动字幕、画中画演示、自动成片。
This skill turns a talking-head video into a publish-ready 9:16 vertical clip with filler-word removal, audio enhancement, greedy-fill subtitles, picture-in-picture B-roll, and cover frame.
阅读全文 (展开查看完整说明)
概述
口播视频自动剪辑生产线 · 付费版(face-broadcast-videos)
本地一键把一段 2–5 分钟真人出镜 / 口播视频 + 你的产品素材,剪辑成可发布的精品竖版成片(去水词、去静音、音频精修、烧字幕、画中画产品演示、封面标题)。
只出竖版 9:16(1080×1920)单输出。素材非 9:16 告知客户本 skill 只剪 9:16,不硬转比例。
交互规范(强制·不可违反)
基本规范
- 只做视频的事:不问与视频制作无关的问题,不拓展话题
- 执行静默:跑脚本时不逐步汇报进度,只在出错时才说明
- 结果只给结论:成片输出只给路径 + 质检结论,不展开过程
- 禁止客套:不说"好的我来帮你"、"让我解释一下"等过渡语,直接做事
- 回答简练:客户问什么答什么,一句话能说清的不用三句;禁止复述参数、解释原理、展开分析
- 认清身份:你是工具不是主人,客户是决策者;解决不了的问题直接说"需要转技术人员",不绕弯、不硬扛、不擅自改方案
绝对禁止(铁律,违反即失败)
- 不做环境预检:开工前不得主动检查工具、依赖库等环境问题。缺什么跑起来报错了再说。
- 不汇报过程:不得输出"我先做XX"、"我再确认XX"、"现在做XX"等过程性描述。有结果直接给结果,有问题直接说问题。
- 不重复确认:用户已经给过的信息,不得再问第二遍。
- 不自加步骤:严格按本 SKILL.md 的工作流执行,不得自行增加检查项、确认项。
- 不自行检测视频参数:不得自行运行 ffprobe/ffmpeg 检查视频分辨率、比例、帧率、旋转角度等参数。脚本内置 rotation 检测和比例适配,Agent 只负责把文件路径传给脚本,脚本自己判断。
- 报错即告知用户,不自己修:脚本运行报错(缺依赖、缺字体、缺路径等)时,立即把错误信息原样给用户,不得自行 pip install、复制字体、创建目录等。让用户决定怎么处理。
- 不装依赖:不得自行运行 pip install 或任何包管理命令。依赖问题转交用户处理。
会话截断恢复规则
- 会话被截断后,不重复已完成的步骤:从截断处的下一个未完成动作继续,不回顾、不复述、不重新确认。
- 截断后第一件事:直接做事,不打招呼:不说"我继续"、"上次说到"等恢复性话术,直接输出下一步结果或动作。
首次使用引导(必读)
新用户第一次使用,必须先走引导流程,不要直接开跑。
- 素材自检:确认视频文件存在、可播放、有清晰人声。视频格式支持 mp4/mov/mkv/avi。
- 素材比例:检查是否 9:16 竖版;横版/方型告知本 skill 只出 9:16,不硬转比例。
- 歧义词:主动问用户"有没有容易转错的词"——典型如
WorkBuddy→workbody、品牌名、专业术语。提前确认,而非事后纠错。 - 标题来源:用户提供封面标题 / AI 结合内容自动提炼。标题 ≤12 字、无标点(书名号《》除外)。
- BGM 来源:弹问卡确认——不加 BGM(纯人声)/ 从云端下载默认 BGM / 用户提供自有音乐。不内置任何 BGM 文件。
- 品牌信息(可选):账号名 / 底部标签,不传则留白占位。
- 纯新用户视角:禁止假设用户有任何历史,不得出现「你之前 / 已用过 / 出了 N 期」等表述;用户是陌生人,从零引导。
- 开工前一次说清:BGM 须可商用、凭证别泄露。
仅当用户已熟悉流程、且各项输入齐备时,可跳过引导直接执行下方工作流。
何时用
用户要:
- 口播 / 真人出镜视频去水词、去静音、压时长
- 自动烧字幕(中文,思源黑体 96px 白字黑描边,单行贪心填满,无标点 + 停顿感知断行 + 断前词/断后词位置优化)
- 口播里自动插入产品演示 / 画中画 / 全屏展示(带货、知识讲解)
- 输出竖版 9:16 成片(抖音 / 视频号 / 小红书)
- 批量处理一堆口播素材
- 加封面(白底金字标题,无片头片尾 CTA)
不要用本 skill:需要云端 AI 生成 B-roll、AI 数字人、眼神矫正、多语种翻译字幕、非 9:16 比例输出 — 这些不在本地范围(见边界)。
开工确认门(弹问卡,7 项必问)
开始生产前,7 项逐项弹问卡让客户选,一项一项来。不替客户选、不静默默认。 没全部确认前禁止执行任何脚本。
注意:只问这 7 项,不得自行增加检查项、预检项、环境验证。问完直接触发付费门。
铁律:视频素材是第一道门。客户没给视频文件路径/链接之前,禁止弹问标题、歧义词、BGM、B-roll、品牌信息等任何后续卡片。 视频拿到后才能逐项往后问。不得为求快合并提问。
按顺序逐项弹问卡:
- 视频素材/链接:先问客户要视频文件路径或链接。客户没给视频前,不得弹任何后续卡片。
- 素材比例:脚本内置 rotation 检测,自动处理竖版/横版/旋转视频,Agent 不得自行用 ffprobe 检查比例——直接把文件交给脚本,它自己判断
- 标题:弹问卡「标题怎么来?」
- AI 根据视频内容提炼标题
- 客户提供标题
标题 ≤12 字、无标点、仅展示不朗读
- 歧义词:主动问"有没有容易转错的词?"——品牌名、专业术语等
- BGM:弹问卡「BGM 怎么解决?」
- 不加 BGM(纯人声)
- 云端下载默认 BGM
- 用我自己的
- B-roll:问客户"要不要加产品演示画面?"加的话确认位置和内容,视频素材必须全部静音
- 品牌信息:问客户"账号名和底部标签要填什么?不需要可以说留空"
全部确认 → 立即触发付费门 → 付费成功立即开跑,中间不停顿、不追问、不额外检查。跑完输出成片路径 + 质检结论。
IMA 10 步流程(权威流程,必须遵守)
| 步 | 内容 | 产物 | 确认节点 |
|---|---|---|---|
| 1 | 确定素材是否 9:16;不是则告知客户只剪 9:16 | — | 非 9:16 直接告知 |
| 2 | 开工前询问:歧义词、标题来源、是否要 BGM、是否加 B-roll 及位置、品牌信息 | — | 必须等客户确认 |
| 3 | 去掉视频开头噪音 | 视频 A | — |
| 4 | 去水词/连词 → 删静音死气 | 视频 B | — |
| 5 | 自己检查 B 是否合格,不合格返回 A 重做 | B(或回 A) | 自检节点 |
| 6 | 对合格的 B 加字幕 | — | — |
| 7 | 加封面(标题客户不给则自己结合内容定) | 视频 C | — |
| 8 | 停下来让客户确认字幕,直到确认可以才下一步 | C | 客户确认(不可跳过) |
| 9 | 加 BGM(云端下载或用户提供);加 B-roll(确认位置、视频全静音) | 视频 D | B-roll 位置需确认 |
| 10 | 输出成品 | 成品 = D(含 BGM+B-roll);无 BGM/B-roll 则 = C | — |
前置依赖
ffmpeg/ffprobe:本机需安装并在 PATH;缺失脚本会提示安装指引。- Python 3.11+ +
faster-whisper:首次运行前执行--setup自动安装依赖并预下载 medium 模型(约 0.8GB,缓存后免重下)。 jieba:字幕语义词聚合,防劈词。随依赖安装。- 命令行示例中的路径请用 Windows 风格(
D:/...)。路径含空格已支持。
大文件落盘位置
模型权重、独立 venv、pip / HuggingFace 缓存一律不写系统盘。脚本自动选剩余空间最大的非系统盘建根目录:
<非系统盘>face_broadcast
├─ models ASR 模型权重(medium≈0.8GB / large-v3≈1.5GB)
├─ venv 独立 Python 环境(faster-whisper + ctranslate2)
└─ cache pip / HuggingFace / 临时缓存- 手动指定:
--data-home "E:/xxx"或设环境变量FBV_HOME
运行方式
A · 对话(主路径)
"用「口播视频自动剪辑生产线」处理
D:素材口播01.mp4,说'看这款产品'时插入产品演示.mp4,封面标题写'三步搞定 AI 办公'"
B · 命令行
# 标准成品(去水词+去静音+音频精修+字幕+画中画+封面,竖版 9:16)
python scripts/cut.py --input "D:/素材/口播01.mp4" --config cut.toml --paid-token "订单号"
# 预览模式:只转写+出切割清单,不渲染(本地免费,保护付费体验)
python scripts/cut.py --input "D:/素材/口播01.mp4" --mode plan
# 仅去静音快剪(跳过转写)
python scripts/cut.py --input x.mp4 --mode silence_only字幕标准(96px 单行贪心填满,无标点 + 停顿感知断行)
| 项 | 标准 |
|---|---|
| 字体 | 思源黑体 Noto Sans SC Bold(wght=700),96px 固定 |
| 颜色 | 白字黑描边(Outline=2, BorderStyle=1) |
| 留白 | MarginL=100, MarginR=100, MarginV=400 |
| 对齐 | 底部居中(Alignment=2) |
| 显示 | 单行显示,不折行,零 N,零标点(去掉所有标点符号) |
| 行宽 | break_px=960, cap_px=960(最大 10 个 CJK 字符行宽) |
| 断行优先级 | ①词间停顿 >0.3s 断行 → ②断前词前断行 → ③断后词后断行(仅行宽≥95%时) |
| 断前词(单字) | 在/从/对/向/按/都/也/还/又/才/但/而/或 → 放到下一行开头 |
| 断前词(多字) | 因为/所以/但是/然而/而且/或者/按照/为了 → 整词匹配,避免单字误触发(如"为什么"的"为"已移除) |
| 断后词 | 了/的/地/得/着/过/上/中/里/外/下 → 留在当前行末尾(仅行宽≥95%时触发,防过早断行) |
| 贪心填满 | jieba 词级贪心累加到 960px 才切,不按标点分句 |
| 短事件合并 | <1.5s 短事件合并到下一行(不超行宽才合并);断前词位置保护(不被合并破坏);<2 字短事件向前合并需宽度<192px |
| 双向合并 | 向前合并被断前词阻挡时,尝试向后合并(不破坏断前词位置) |
| 宽度计算 | 中文=96px/字,拉丁/数字按实际宽度(像素宽度驱动,非字符数) |
| 防劈词 | jieba 语义聚合,whisper 字符级输出→不可拆语义词 |
| 简繁 | 简体中文(zhconv),绝不出繁体 |
| 时间对齐 | 按 keep_segments 重映射,enforce_monotonic 防抖,零漂移 |
| 确认节点 | step8 必须让客户确认字幕可发布,确认后才进 BGM/B-roll |
封面标准
- 纯白背景
- 思源黑体 NotoSansSC-VF wght=900(Black),金色 #FFC31F,110px
- 无标点,两行各自真居中,净间距 50px
- 封面 0.8s + 与正片 0.5s xfade
音频精修
- afftdn 降噪(nr=20)+ highpass 80Hz + loudnorm(I=-16, TP=-1.5, LRA=11)
- 合并进 PASS1,不额外编码
- 保留原始采样率(48000Hz)和声道(stereo),不降级
BGM 策略(云端下载,不内置)
| 项 | 标准 |
|---|---|
| BGM 来源 | 云端服务器,首次运行自动下载到 bgm/bgmbroadcast.mp3 |
| 覆盖 | 用户可用 --bgm <path> 覆盖为自有音频;--bgm none 禁用 BGM |
| 下载失败 | 降级为纯人声,不阻断成片 |
| 混音参数 | BGM 音量 0.06;人声 volume=1.6 提亮;amix normalize=0 不自动归一化;aloop 循环垫底;alimiter=limit=0.95 防削波 |
| 调整 | BGM 音量调整须经客户确认,禁止静默自动调整 |
| 版权 | BGM 须可商用;客户自带 BGM 版权自负 |
字体策略(云端下载,不内置)
| 项 | 标准 |
|---|---|
| 字体来源 | 云端服务器,首运行自动下载思源黑体可变字体(NotoSansSC-VF.ttf) |
| 下载失败 | 自动降级为系统字体(微软雅黑/黑体),不阻断成片 |
| 用途 | 字幕、封面标题、品牌文字统一使用思源黑体 |
| 版权 | 思源黑体为 SIL Open Font License 开源字体,可免费商用 |
B-roll 标准(IMA step9)
| 项 | 标准 |
|---|---|
| B-roll | 确认好位置再加;视频素材必须全部静音(默认静音,需开声音须先告知客户) |
| B-roll 模式 | 统一居中(写死):素材按原始比例缩放至宽度撑满 1080px,垂直居中放置 |
| B-roll 触发 | 关键词自动匹配(文件名即关键词)或 toml 手动指定 [[broll.items]] |
| B-roll 结束 | 取素材时长与句末的较大值;图片素材最少展示 5 秒 |
| B-roll 来源 | 本地素材 + 关键词/手动触发,统一居中 + fade 转场 |
| 成品编号 | 加完 BGM/B-roll 存视频 D,D 即最终成品 |
| 边界 | 不做云端 AI 生成 B-roll |
cut.toml 配置(优先级:命令行 > 同目录 cut.toml > 内置默认)
| 段 | 关键字段 | 说明 |
|---|---|---|
[transcribe] | model="auto" / language="zh" | auto=有 GPU 升 large-v3,否则 medium+int8 |
[filler] | words、silence_threshold=1.2、keep_pause=0.2、min_segment=0.5、position_aware=true | 水词表、静音秒数、切口停顿、碎段丢弃、位置感知 |
| fix=true、afftdn_nr=20、highpass_hz=80、loudnorm_I=-16、loudnorm_TP=-1.5、loudnorm_LRA=11 | 音频精修,合并进 PASS1 |
[subtitle] | enable=true、font="Noto Sans SC"、font_file="fonts/NotoSansSC-VF.ttf"、font_size=96、margin_l=100、margin_r=100、margin_v=450 | 单行 96px 贪心填满,字体首运行自动从云端下载 |
[broll] | enable、mode="auto"、position、size、library、library_map + [[broll.items]] | 画中画/全屏/分屏+转场 |
[cover] | enable=true、title、duration=0.8、font_file、font_size=110 | 白底金字标题 |
[cta] | enable=false | 无片头片尾 CTA |
| 输出规格 | 固定 1080×1920(9:16) | 单版本输出 |
画中画 / B-roll 触发写法
方式一:手写 items(精确控制)
[[broll.items]]
trigger_word = "看这款产品"
source = "D:/素材/产品演示.mp4"
mode = "picture_in_picture"
[[broll.items]]
at_time = 15.0
source = "D:/素材/价格表.png"
mode = "fullscreen"方式二:素材库自动匹配(零配置,推荐)
[broll]
enable = true
mode = "auto"
library = "D:/素材/broll_lib"
library_map = { "MCP" = "mcp_demo.mp4", "知识库" = "kb.png" }
max_auto = 4
auto_item_mode = "picture_in_picture"内部管线
输入视频 + cut.toml
→ [0] 付费校验(X402 硬门)+ 自检 ffmpeg/GPU/依赖(自动切 venv)
→ [1] 抽音频 → [2] faster-whisper 转写(词级) + jieba 聚合 → [3] silencedetect 静音
→ [4] 合并「水词∪静音」→ 差集 → keep_segments(位置感知;边界0.2s;丢<0.5s碎段)
→ [5] 截前导噪音:以首个词起始时间 -0.15s 为起点
→ 【PASS1】逐段 -ss/-to 重编码 + 音频精修(afftdn+highpass+loudnorm) → concat → base.mp4
→ 【PASS2】画中画/全屏/分屏+转场 → 字幕(贪心填满96px单行) → 封面(白底金字)
→ 缩放到 1080×1920 → out_9x16.mp4编码仅 2 次(PASS1 切拼+音频精修 / PASS2 叠加+字幕+封面+缩放),3min 视频约 3–4min 出片。
预览模式(保护付费体验)
--mode plan:只跑转写 + 切割清单,不渲染,输出 cut_report.txt。用户确认后再正式渲染(需付费)。
输出
out_9x16.mp4— 竖版 9:16 成片(1080×1920)subtitle.ass— 重映射后对齐字幕(ASS 格式)cut_report.txt— 剪辑清单 / 预览报告- 输出目录默认:
输入文件同目录/face_out/
工作铁律
- 必须换文件名:每次整改新目录,不覆盖混淆
- 不做半成品:交付即精品(IMA 全程自检+客户确认保证)
- 关键节点需客户确认:step2 开工确认、step5 自检、step8 字幕确认 — 不能"一次跑通不等人"
- 不反复出 plan 版本回炉:方案定型即开干,但交付节点要客户拍板
- 分步编号 A/B/C/D:每步产物编号隔离、可回溯
红线(禁止事项)
- 禁止私自加片尾 CTA(如"点赞关注"banner)——用户没说就不加
- 禁止改字幕字号——96px 固定,不可调
- 禁止内置 BGM 文件——BGM 从云端下载,不打包进 zip
- 禁止内置字体文件——字体从云端下载,不打包进 zip
- 禁止留付费后门——客户版无 SKIP_PAY_CHECK 环境变量,纯硬校验
- 禁止静默调整 BGM 音量——须经客户确认
- 禁止擅自改文件路径/目录结构——用户习惯怎么操作就保持
- 禁止 AI 私自改版本号/同步 GitHub——一切听指令
边界(不做)
- 不做云端 AI 生成 B-roll / 动态图形 / 转场 → 用本地素材替代
- 不做眼神矫正 / AI 提音质 → 用 ffmpeg 本地 loudnorm / afftdn 替代
- 不做多语种翻译字幕(中文为主)
- 不做横版/3:4 输出(只出 9:16 竖版)
- B-roll 不做 AI 自动联网选图(用户指定素材 + 触发词/文件名)
- 词级高亮字幕(karaoke)为后续增强,首版做精致静态字幕
付费流程(X402 协议)
本 skill 为 Pay Skill,用户每次调用按 1 元/次 计费(无论输出几条视频),通过微信 Agent Pay(X402 协议)完成支付。
付费前置检查
调用本 skill 前,检查当前 Agent 是否已安装 weixinpay 插件:
- 已安装:可继续提供付费服务。
- 未安装:提示用户「当前 Agent 暂不支持微信支付付费能力,请先安装 weixinpay 插件」,终止流程。
硬门校验(代码层强制)
cut.py 启动时强制校验付费凭证,不依赖 AI 规范层:
- 传
--paid-token <订单号>→ 向商户服务端验证(含重试,应对微信回调延迟),未付费直接退出(exit 2) - 不传
--paid-token→ 直接退出(exit 2) - 客户版无任何环境变量后门,纯硬校验
工作流程
第一步:确认完 7 项后,立即触发付费
确认完最后一个确认门项后,直接向商户服务端发起一次 POST 请求,不等用户说"开始"、"做吧"之类的话。
POST https://skillpay.reexin.cn/demo/skill/invoke
Content-Type: application/json
X-Skill-Id: face-broadcast-videos
{
"query": "用户的查询内容(即口播视频处理指令)"
}第二步:从 402 响应中提取订单号
商户服务端返回 HTTP 402,响应中携带:
out_trade_no:订单号(形如WX402_xxxxx)—— 出现在 402 响应 body 的out_trade_no字段和X-Out-Trade-No响应头中。必须记下来,后面出片要用。WeixinPay-Required:支付码,系统自动检测并弹出微信支付卡片。- 系统会自动检测
WeixinPay-Required并弹出支付卡片,Agent 什么都不用做,等着就行。 - 禁止向用户解释支付流程、展示支付码、询问是否支付。
- 禁止手动调用支付工具,系统会自动弹卡。
第三步:支付成功后,用订单号出片
用户支付成功后(stderr 显示"微信支付成功"),立即用第二步记下的 out_trade_no 作为 --paid-token 执行出片脚本:
python cut.py
--input "D:/素材/口播01.mp4"
--config cut.toml
--output "D:/输出目录"
--paid-token "第二步的 out_trade_no"cut.py 内部会自动向商户服务端验证订单(含 8 次重试 × 3 秒间隔,应对微信回调延迟),验证通过即开跑出片。出片过程静默,只在最后给结果。
铁律(禁止二次 POST):
- 支付成功后绝不再向商户服务端发 POST 请求——重复 POST 会生成新订单、重复弹支付卡,导致用户被误判"未付费"。
- 支付成功后直接带着
out_trade_no跑cut.py,脚本内部自动验证。- 禁止单独查询订单状态("查询=消费")。
异常处理
- 支付超时/取消:用户未完成支付或支付超时,可用原
out_trade_no重跑 cut.py(不扣费),或重新 POST 发起新订单。 - 402 重复返回:cut.py 验证时仍返回 402,说明微信回调延迟,脚本自动重试 8 次 × 3 秒;8 次后仍 402 提示用户重新发起。
- 网络异常:请求商户服务端失败时,提示用户网络异常,可重试。
- 履约幂等:
already_fulfilled: true表示该订单已履约过,内容正常返回但不重复计费。
对话案例
案例一:从零到一出片(新用户完整流程)
用户:我有一个口播视频,想剪成抖音竖版发出去,怎么做?
AI:视频文件路径是什么?格式是 mp4 吗?竖版 9:16 拍的吗?
用户:视频在 D:素材口播01.mp4,竖版拍的。
AI:标题怎么来?AI 提炼还是你提供?
用户:你帮我写。
AI:有没有容易转错的词?比如品牌名、专业术语?
用户:没有。
AI:BGM 怎么解决?不加(纯人声)/ 云端默认 / 用你自己的?
用户:用云端默认的吧。
AI:要不要加产品演示画面?
用户:不用。
AI:品牌信息要填什么?账号名和底部标签,不需要可以说留空。
用户:留空。
AI:6 项确认完毕,先跑转写看内容,提炼标题给你确认。
[执行 cut.py –mode plan 预览]
标题建议:「三步搞定 AI 办公」,可以吗?
用户:可以。
AI:标题确认。开始渲染出片。
[支付流程 → 执行 cut.py –paid-token "订单号"]
成片:D:素材face_outout_9x16.mp4(1080×1920,58s)。质检通过。
案例二:BGM 选择与自定义
用户:能用自己的音乐当 BGM 吗?
AI:可以!三种方式:
- 云端默认 BGM(推荐):首次运行自动从云端下载到
bgm/bgmbroadcast.mp3,后续复用,不占 zip 体积。音量 0.06,人声 1.6x 提亮 + 限幅器防削波。 - 你自己的音乐:用
--bgm "D:/素材/我的BGM.mp3"指定路径,覆盖默认 BGM。 - 不加 BGM:用
--bgm none禁用,纯人声输出。
⚠️ 注意:自带的 BGM 须确保有可商用授权(发抖音/视频号/小红书属商业使用),版权自负。
用户:用我自己的,在 D:素材bgm.mp3。音量能调大一点吗?
AI:可以。默认 BGM 音量 0.06,你想调到多少?建议 0.08-0.10 之间,太大会盖过人声。
用户:0.08 吧。
AI:好的,BGM 确认:D:素材bgm.mp3,音量 0.08。开工后中间不再打扰,跑完通知你。
案例三:字幕断句效果与封面标题
用户:字幕是怎么断句的?能改字号吗?
AI:字幕标准如下(已固化,不可改字号):
- 字体:思源黑体 Noto Sans SC Bold(wght=700),96px 固定
- 显示:单行,零标点,贪心填满(每行尽量填到 960px ≈ 10 个汉字)
- 断行逻辑:
- 优先在词间停顿 >0.3s 处断行(自然停顿)
- 其次在断前词前断行(在/从/对/都/也/还 → 放到下一行开头)
- 最后在断后词后断行(了/的/着/过/上 → 留在当前行末尾,仅行宽≥95%时触发)
- 不劈词:jieba 语义聚合,不会把"为什么"拆成"为什"+"么"
效果示例:
今天做一个分享
在顺美服装联盟活动上
我做了
一个WorkBuddy的
在AI的这种加持下
都要重构一遍为什么字号 96px 是固化标准,改不了。如果觉得字幕太满或太空,可以调整左右留白(默认 100px)。
用户:封面标题怎么定?
AI:封面标题规则:
- ≤12 字,无标点(书名号《》除外)
- 纯白背景,金色 #FFC31F,思源黑体 wght=900,110px
- 两行各自真居中,净间距 50px
- 你可以直接给标题,或让我结合视频内容自动提炼
- 标题不朗读,只显示在封面上
用户:标题写「AI 重构一切」,不加书名号。
AI:好的,标题确认「AI 重构一切」(6 字,无标点 ✓)。封面将显示为纯白底 + 金色思源黑体 wght=900 110px「AI 重构一切」。
故障排查
| 现象 | 处理 |
|---|---|
ffmpeg not found | 安装 ffmpeg 并加入 PATH,或报指引 |
| 转写慢 | 用 --model small 或确认是否误走 CPU 大模型;有 GPU 自动升 large-v3 |
| 切口爆音 | 加大 --keep-pause(如 0.3) |
| 画中画未出现 | 查 cut_report.txt 的触发点;trigger_word/library_map 未命中会打印警告跳过 |
| 字幕漂移 | 确认 subtitle.enable=true;SRT 已按 keep_segments 重映射 |
| 字幕劈词 | 确认 jieba 已安装;aggregate_jieba 在 build_subtitle_events 中自动调用 |
| 字幕行太短 | 确认使用贪心填满策略(_split_subtitle_events),break_px=960;检查断前词/断后词是否过早触发(断后词需行宽≥95%) |
| BGM 下载失败 | 检查网络连接 https://skillpay.reexin.cn/assets/bgmbroadcast.mp3;下载失败自动降级为纯人声 |
| 付费校验失败 | 确认 --paid-token 传入有效订单号;检查商户服务端是否正常运行 |
版权与免责声明
- BGM 默认从云端下载:本 skill 不内置任何 BGM 文件。默认 BGM 从云端下载,首次运行后缓存在
bgm/目录。 - 字幕字体从云端下载:本 skill 不内置任何字体文件。默认使用思源黑体(Noto Sans SC),首运行从云端下载,SIL Open Font License 开源授权,可免费商用。
- 客户自带 BGM:若你提供第三方音乐,其版权由你自行负责;本 skill 仅做技术合成,不对第三方音乐的版权纠纷负责。请确保你有可商用授权。
- 成片用途:本 skill 产出的是剪辑后视频,最终发布内容的合规与版权由使用者承担。