● 视频生成 · 推荐
操作录屏剪推荐视频
将网站、软件、App 或 SaaS 的操作录屏剪成真实用户分享式竖屏推荐视频。适用于需要按光标和真实点击同步局部放大、箭头、字幕、配音、点击音效与 BGM,并保持界面清晰可读的产品演示;不适用于实体商品带货或没有操作录屏的纯品牌广告。支持两种出片方式:ChatCut 可视化剪辑,或本地 ffmpeg+PIL 引擎(无需 ChatCut)。
开始前
- 读取用户给出的目标视频、参考视频、操作路径和现有 Timeline。用户没有要求覆盖时,保留原 Timeline,在副本或新 Timeline 中制作。
- 先完整检查录屏,再动手剪。重点看光标移动、按下位置、点击后的页面变化、加载等待和真正需要展示的界面区域。
- 建立简短的节奏表:
画面时间|真实操作|点击目标|页面反馈|对应旁白/字幕|视觉提示。不要只依据用户对路径的文字描述猜时间点。
- 区分真实点击、悬停、页面定位和加载跳转。只有发生真实点击时才同步点击音效和点击式推近;定位可用箭头或提示,但不能伪造点击。
- 若用户给了模板视频,以模板的节奏、版式和信息密度为准;模板没有覆盖的细节采用下方默认风格。
- 写文案或完成终检时,读取 [文案与成片自检](references/copy-and-qa.md)。
- 出片方式二选一:有 ChatCut 走可视化剪辑;没有 ChatCut 用本仓库
scripts/ 本地引擎(见下方「本地无 ChatCut 出片」),两者产出一致,可互补 —— 例如书类拆书用 hsf-book-video,产品/录屏演示用本 Skill,统一走 ffmpeg+PIL 底座。
脚本与口吻
- 从录屏里真实可见的功能和操作路径出发,不编造效果、身份、体验时长或数据。
- 使用自然的第一人称经验:先说真实痛点或使用场景,再说“我现在怎么做”,最后落到具体帮助。允许口语和克制的主观感受,避免广告口号。
- 标题要让普通老师或目标用户一眼看懂,例如“高中老师怎么备新课?”;不要用生硬、残缺或自证式标题,例如“高一语文怎么备?”、“真实备课录屏”。
- 旁白、字幕和画面操作表达同一件事。旁白说到入口时,画面必须正好能看见入口;说到某项内容时,再把该内容放大。
- 在用户尚未选定文案方向时,可以先给 2–3 个明显不同的自然口吻方案。选定后按该方向执行,不在成片中混用多套口吻。
默认视觉语言
- 输出为 9:16。使用克制的黑色科技背景,可有低对比度的上下透视网格和紫蓝氛围光。
- 中央主画面优先裁成接近 1:1 的大画中画,只展示当前操作所需区域。不要把完整 16:9 网页缩得过小,导致文字和按钮无法辨认。
- 主画面使用适度的紫蓝霓虹描边或柔和辉光,与背景分离;效果不能盖住网页内容。
- 顶部使用通俗的金白粗体标题,底部使用白色粗体字幕。标题、主画面比例、边框、字幕位置和安全边距应贯穿全片保持一致;章节切换只改内容,不随意改版式。
- 底部字幕尽量单行、短句、跟随语义分段。不要挡住光标、按钮或页面核心信息。
- 箭头只服务于明确的入口或目标:在用户需要寻找的位置出现,准确指向目标,操作完成后及时退出。不要用箭头装饰空白区域。
动效与操作同步
- 动效由旁白和真实操作驱动。只有强调入口、点击目标、结果区域或关键字段时才局部推近。
- 推近从稳定全景进入目标区域,保持到观众看清点击和页面反馈,再平稳回到下一段需要的构图。不要做循环呼吸缩放、无目的来回放大或每句话都缩放。
- 点击入口时,让光标、箭头、局部放大、点击音效和页面响应在感知上落在同一个节拍。以录屏中的真实光标轨迹为准,不把箭头指到“差不多”的位置。
- 页面加载期间优先压缩等待;若等待本身能解释跳转,则保留最短可理解时长。不要用无关动效掩盖错误页面或错误路径。
- 裁切和放大后检查文字清晰度。关键内容仍不可读时,重新选择裁切区域或分两步展示,不继续放大低清画面。
音频
- 配音自然直接起声、自然收声,默认不添加淡入淡出。语气像真实用户给同行分享,不像播广告。
- BGM 选择轻柔、无歌词、节奏明确但不抢旁白的音乐。开头若有长前奏、近乎静音或弱起,直接从有效声音处开始剪;默认不靠长淡入解决。
- BGM 从前几秒就应可感知,但始终低于配音。真实点击可以加克制的点击音效;没有真实点击则不要硬加。
- 逐段听配音与操作是否同步,尤其检查前十秒不能因为音乐前奏或淡入而接近无声。
制作和确认
- 用户要求“先做样片”时,先完成约 8–12 秒或用户指定范围,渲染并预览检查后让用户确认,再扩展后续段落。
- 用户已经确认风格并要求剪完整条时,直接延续同一视觉系统和音频标准,不重新发明版式。
- 不把项目专属的素材 ID、Item ID、绝对时间点或临时文件写入此 Skill。每个新项目都重新从素材中定位。
- 编辑完成后必须看合成预览或导出画面,不能只看轨道、属性或单个素材。发现标题缺失、比例漂移、箭头错位、画中画太小或关键内容看不清时,先修正再交付。
交付标准
成片应让第一次观看的人能回答:入口在哪里、光标点了什么、页面跳到了哪里、推荐者为什么觉得这一步有用。若其中任一项需要猜,继续调整构图、同步或文案。
介绍视频内容结构(防漏关键模块)
用户要的是「介绍视频」而非「使用说明」时,按下面结构排,避免开头无铺垫、结尾潦草、漏关键功能。
标准段落顺序(倒推式:钩子 → 怎么记 → 记完看到啥 → 收尾):
- 开场钩子卡(intro):一句话结果/反差,如「记一个月情绪,我的猫变了」。2–3s。
- 核心钩子前置:把最抓人的成品(情绪周报 / 数据看板)提到第一个功能段,先抛「得到啥」再倒推「怎么用」。
- 功能倒推:选主体 → 按时段/场景记 → 记一笔(短标签 + 长笔记两种模式都要覆盖)。
- 对比/成长:月初 vs 现在、昨日 vs 今日(从源录屏里定位静态对比画面,避开操作动画段)。
- 本周/今日汇总:分布图、已记列表,给「记完看到啥」的闭环。
- 干净收尾卡:一句主张 + 三问三答 + CTA(引导互动:「打 1 / 2」)。
必含检查清单(每做完一个视频逐条勾):
- [ ] 周报/核心数据作为钩子前置,前 10 秒出现。
- [ ] 回顾页/数据可视化屏(趋势图、占比饼图等)必须剪到且整屏清晰可读;高亮圈
highlights 可选、不强加——用户实测认为圈外压暗圈内亮是画蛇添足,整屏可见即可,不到万不得已别加圈。
- [ ] 记一笔的两种模式(点标签 + 长笔记)都剪到,不漏。
- [ ] 有「对比/成长」段(月初 vs 现在 或 昨日 vs 今日),源画面选静态帧。
- [ ] 收尾卡有 CTA 且收得干净,无未完成感;CTA 要告诉用户去哪用(如「微信搜索 XX」+ 片尾小程序码)。
- [ ] BGM 已混合并贯穿全片(含收尾段,非静音)。
- [ ] 画中画为整屏(630×1400)而非小方块,页面文字可读。
- [ ] 无画面抖动(无 zoompan 呼吸放大)。
- [ ] 配音自然(XiaoxiaoNeural 女声 / YunxiNeural 男声 / YunyeNeural,rate -8%),前十秒有声。
- [ ] 9:16、零 AI 水印、已抽帧/测方差 QA。
源时间点定位技巧:用 ffmpeg select='gt(scene,0.05)' 抽场景切换帧建立「帧→源秒」索引,避开操作动画段选静态对比画面。
本地无 ChatCut 出片(fallback 引擎,ffmpeg + PIL)
当环境没有 ChatCut,或需要批量/脚本化出片时,用本仓库 scripts/ 直接生成 9:16 成片,不依赖任何 GUI 剪辑软件。底座与 hsf-book-video 一致(ffmpeg + PIL + edge-tts),便于两条 Skill 并行复用。
前置
- Python 3.10+,依赖:
pip install edge-tts pillow imageio-ffmpeg numpy(ffmpeg 由 imageio-ffmpeg 提供,无需单独装)。
- 工作目录放
segments.json(见下方字段),运行:HSF_WORKDIR=<工作目录> python scripts/gen_audio.py 再 python scripts/screen_compose.py。
segments.json 字段
直接复制 references/template_segments.json 作起点(含全部必含模块占位骨架),再回填 source / 各段 start / caption 即可。
{
"source": "recording.mp4", // 录屏路径(相对/绝对)
"rate": "-8%", // 配音语速
"voice": "zh-CN-YunxiNeural", // 男声;女声用 zh-CN-XiaoxiaoNeural / zh-CN-YunyeNeural
"title": "心宠日记",
"bgm": "ambient", // "ambient"=引擎合成环境 BGM 并混音;或填 BGM 文件路径;留空=无
"intro": { // 可选:开场钩子卡(介绍视频必备)
"headline": "记录情绪 30 天,我的猫替我崩了", // 钩子:结果/反差,别写功能名
"sub": "把心宠日记当成情绪树洞",
"bg": "assets/cat_compare.png", // 可选:开场卡背景图(如产品内对比屏),不填则纯渐变
"duration": 3.0
},
…(完整代码见技能源码)
引擎行为(screen_compose.py,已对齐本工作流)
- 每个 segment:源录屏按比例映射到整屏竖屏画中画 630×1400(BOX_X=225, BOX_Y=240),加圆角手机描边框,不做 zoompan / 呼吸放大(避免画面抖动)。源坐标直接
map_pt 映射,无裁切。
intro 存在时:先渲染开场钩子卡;有 bg 则用背景图(产品对比屏等)+ 渐变叠加 + headline/sub,zoompan 缓慢推近 duration 秒,置于成片首位。
highlights(segment 级,可选、慎用):在 t 时刻于映射后的 (x,y) 画发光圈,圈外仅手机屏内压暗、圈内透明露出原画面、边缘发光描边 + 标签,2.6s 后退出。坐标用源像素,(x,y) 为圈中心、r 为源半径。实战反馈:圈外压暗+圈内亮被用户判定为「画蛇添足」,默认不加,数据图整屏可读即可。
- 真实点击:在
clicks[i].t 时刻叠加点击涟漪 + 点击音效;只在该时刻出现,不伪造。
- 箭头:在
arrows[i].t 时刻出现在映射后的目标点,2 秒后退出。
- 顶部金白标题、底部白字字幕(按
caption 标点断句,时间按配音词级时间戳对齐)。
gen_audio.py 用 edge-tts 生成配音 + 词级时间戳(含 NoAudioReceived 重试 max_retry=6 指数退避);say 字段处理多音字(字幕显原字、配音读同音字)。
bgm:"ambient":引擎用 synth_bgm 合成环境和弦循环混入全片(音量低于配音);留空则无 BGM。
- 片尾卡
render_ending_card:暖色系渐变底(与产品主色一致)+ slogan + 可选小程序码 + CTA 底色框,慢推。
- 输出:
final.mp4(1080×1920 竖屏,h264+aac,约 45–50s 介绍视频版)。
发布前自检
- 跑
references/copy-and-qa.md 清单:比例 9:16、画中画可读、箭头不乱指、点击不伪造、前十秒有声、必看预览、零水印。
- 抽帧确认:开场/中段/片尾各一帧,检查标题在、比例对、画中画够大、关键内容看得清。
- 若当前环境无法目视抽出的 PNG(图片被过滤/不支持):改用程序化 QA ——
ffmpeg 抽关键帧 → PIL ImageStat.stddev 测方差(std≈0 即黑屏/缺内容);ffmpeg 抽音轨 PCM → 算 RMS 确认非静音且 BGM 贯穿(收尾段 RMS 不应趋零)。把关键时间戳(intro / 钩子前置 / 昨日vs今日 / 收尾)都抽到再判。
已知坑
- 源录屏分辨率需 ≥ 聚焦方块;
region 超出源范围会被自动夹紧。
- 点击/箭头坐标用源分辨率像素,引擎按
region 映射;坐标给错会出现在错误位置。
- 无 ChatCut 时不做「每句都缩放回弹」式花哨动效,保持克制真实感(见上方「动效与操作同步」)。
常见问题
Q:操作录屏剪推荐视频是做什么的?
将网站、软件、App 或 SaaS 的操作录屏剪成真实用户分享式竖屏推荐视频。适用于需要按光标和真实点击同步局部放大、箭头、字幕、配音、点击音效与 BGM,并保持界面清晰可读的产品演示;不适用于实体商品带货或没有操作录屏
Q:知莫三的操作录屏剪推荐视频适合谁用?
需要做操作录屏剪推荐视频的运营、产品与内容团队,基于知莫三 15 年全链路实战框架,按步骤填内容即可产出。
Q:使用操作录屏剪推荐视频最终能得到什么?
成片应让第一次观看的人能回答:入口在哪里、光标点了什么、页面跳到了哪里、推荐者为什么觉得这一步有用若其中任一项需要猜,继续调整构图、同步或文案