mcpField
V
Video Producer

Video Producer

github.com/casperliu7创意与媒体038 次安装18 周前更新
代码仓库

关于 Video Producer

Video Producer 是一套用于制作短视频的工作流技能,面向需要从文案和素材生成成片的用户。它分阶段规划分镜并等待确认,再用语音、视频生成工具和 FFmpeg 处理素材、拼接及添加字幕配乐。

主要功能

  1. 01盘点素材并规划分镜脚本
  2. 02关键阶段等待用户确认
  3. 03生成连续旁白与同步字幕
  4. 04区分处理 UI 素材和 AI 氛围镜头
  5. 05用 FFmpeg 统一规格、拼接和混音
  6. 06烧录字幕并输出 MP4

适用场景

  1. 01根据文案制作短视频
  2. 02将录屏、截图或网页素材编入视频
  3. 03为短视频生成旁白、字幕和配乐
  4. 04拼接 AI 氛围镜头与实操画面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/casperliu7/small-company-agent --skill video-producer

安装后在 Claude Code 中输入/video-producer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
audio_subtitle_gen.sh
ffmpeg_assembly.sh
record_scroll.py

详细介绍

来自项目 README

Skill: Video Producer (工业级短视频自动化工作流)

Prerequisites

  • ffmpeg (处理视频比例、运镜、拼接、混音)
  • edge-tts (生成带有情绪的连续主音轨)
  • 内置工具 generate_video (仅用于生成无文字、非实操的情感类/人物类空镜)

Workflow (工作流步骤)

当用户要求生成短视频时,请严格按以下步骤执行,并必须在关键节点等待用户确认:

Step 0: 素材盘点与确认 (Asset Check)
  • 当用户仅提供文案时,**首先【强制停顿】**询问用户:“是否有参考素材(图片、录屏、官方视频或网页 URL 等)需要穿插在视频中?”
  • 如果用户回答“没有”,则规划为100% 纯 AI 生成画面的分镜脚本。
  • 如果用户回答“有”或已经上传了素材,则先分析这些原始素材的内容。针对用户上传的视频素材,必须主动使用 ffprobe 提取准确的物理时长(精确到秒)。如果提供的是网页 URL,Agent 需准备调用浏览器自动化工具进行截屏或录制。
Step 1: 提炼分镜与脚本确认 (Human-in-the-loop 强制等待)
  • 根据 Step 0 的资产盘点,将文案拆分为具体的分镜脚本(Blocks)。
  • 【基于时长的字数约束】:规划旁白时,必须严格参考原视频素材的物理时长匹配对白字数。按照中文 TTS 正常语速(约 4.5字/秒)计算。例如:一段 10 秒的录屏切片,分配的对白必须控制在 40-45 字之间,防止音画严重脱节。
  • 【快节奏与静态画面限时】:为了保持短视频的快节奏,静态截图或图片的展示时间必须严格限制在 3 秒以内。如果该段旁白配音超过 3 秒,必须拆分分镜:前 3 秒展示截图,剩余时间使用相关的 AI 生成动态画面(B-roll)来无缝填充,绝不能删减原旁白文字或让单张图片定格过久。
  • 【结尾 CTA 动态化】:视频结尾的 Call to Action (CTA) 或 Logo 展示,不能仅用一张静止图片。必须将其规划为使用 generate_video 结合 Logo 素材(作为 attachment)生成的 3D 动态视频片段,提升结尾的商业质感。
  • 【标准分镜表排版】:必须以清晰的 Markdown 表格形式输出分镜脚本,绝对不能为了精简而忽略画面提示词的丰富度。表格必须包含以下列,且内容需满足:
    • 分镜编号:如 Block 1。
    • 旁白 (VO) / 断句:严格按 15 字以内切分换行,绝对不加表演指导或情绪废话。
    • 时长:预估或物理提取的确切时长。
    • 画面资产与视觉表现 (Visuals & Prompts):
      • 实操素材写明截取区间与处理方式(如:等比居中+高斯模糊底板)。
      • AI 生成画面写明极度详细的英文 Prompt,必须包含:主体、动作、环境、光影(如 volumetric lighting, cinematic)、运镜(如 fast-paced dolly zoom)和风格(如 Pixar 3D animated style)。
  • 【强制停顿】:将这份详细的分镜表格发送给用户,并明确询问:“请确认分镜脚本与画面规划是否需要修改?”
  • 注意:只有在用户明确回复“确认”或确认无误之后,才能继续执行后续的步骤。绝对不允许跳过此环节擅自开始渲染或总装。
Step 2: 生成主音轨与精确字幕 (Master Audio & Subtitles)
  • 严禁分段生成音频!
  • 【长句切分约束】:在生成语音之前,如果是竖屏或 3:4 比例,必须将长句文案切割为极短的断句(单句尽量不超过 12-15 个字符),例如把“它自带云端电脑Yolo模式下写代码全包了”切分为多段。这能防止单行字幕溢出屏幕边缘,并让视频节奏显得更加干脆。
  • 使用 edge-tts 将完整文案一键生成为一个音频文件(如 master_audio.mp3),并务必加上 --write-subtitles subtitles.srt 参数,提取与声音完美对齐的字幕文件。
  • 推荐使用情绪饱满的音色,如 zh-CN-XiaoxiaoNeural 或 zh-CN-YunxiNeural,可适度提高语速(如 --rate=+10%)以符合短视频快节奏。
Step 3: 原画质资产处理 (UI / 截图 / URL) - FFmpeg / Playwright

对于所有带有文字、代码、UI 界面的截图或视频,绝对不要丢给 AI 生成:

  • 普通图片/截图:根据该分镜对应配音的字数,计算出图片需要停留的时间(例如 3-5 秒)。使用 FFmpeg 将其转换为静态视频。【严禁任何动效】:绝对不要做任何微动效(如缓慢的中心放大 Zoom-in 或呼吸动效)。处理方式非常简单:只需将原图居中显示,并在底层垫上一层该图片的高斯模糊(Gaussian Blur)背景以填充多余区域,彻底保持原画面的纯粹稳定与极简美观。
  • 网页 URL 素材(快速滚动录像):如果用户提供的是 URL,调用浏览器自动化工具(如 Playwright)打开页面。录制滚动视频时,保持常规的宽屏或自适应比例(严禁直接强行录制为 3:4 或窄边比例以免左右信息被暴力裁切)。录像的实现原则:
    1. 首屏零等待:忽略网络加载和长时间停留,直奔主题。
    2. 高频快滑:写自动化脚本时(如 setInterval 控制),必须将滚动步长增大(如 12 像素),间隔缩短(如 16ms),实现飞速且丝滑的滚动效果。
    3. 去头去尾:录制完成后,务必使用 FFmpeg/ffprobe 精确截取掉开头的 Loading 或白屏时间,只保留高密度信息的纯滚动干货画面,时长控制在 5 秒以内,以适配短视频的极快节奏。
  • 视频与录屏素材处理(高斯模糊底板):对于尺寸不一致的实操录屏或上面生成的 URL 滚动视频,在转换至目标比例(如 3:4)时,绝对不能使用黑边填充(Pad 黑边)。必须像处理截图那样:将原视频居中等比缩放显示,同时在底层垫上一层该视频画面的高斯模糊(Gaussian Blur)作为动态背景以填充多余区域,彻底保持画面的连贯和高级感。
Step 4: AI 氛围片段生成 (B-roll / 角色) - generate_video

对于钩子、转场、人物喝咖啡等不含复杂文字的情绪镜头:

  • 【严格控时,干脆利落】:调用 generate_video 时,durationSeconds 参数必须严格匹配分镜脚本中该段旁白所需的物理时长(API允许范围4-15秒)。旁白念完画面即止,绝对不要生成过长、拖泥带水的无用废镜头。
  • 【成本与分辨率控制】:为了严格控制 API 成本和大幅提升生成效率,调用 generate_video 时必须将 resolution 参数设定为最低画质(即 480p),除非用户有明确的高清交付需求。
  • 【具象化 Prompt 编写】:AI 视频生成 Prompt 必须高度细节化,且视觉表现必须与旁白概念精准对应。严禁使用模糊的抽象词汇。例如:当旁白提到“微信和飞书”,不能只写“social media integration”,必须写成“a glowing green chat bubble and a blue paper plane icon floating in a 3D tech space”;当提到“AI大脑”,必须具体到“a glowing futuristic mechanical brain pulsing with neon blue lights”。
  • 【动作节奏约束】:在 Prompt 中主动加入 fast-paced, decisive action, quick motion 等词汇,强制 AI 加快动作执行速度,避免 AI 视频常见的“慢动作拖沓感”。
  • 设定 generateAudio: false(无声生成)。
  • 为了规避真人隐私审查和保持人物一致性,在 Prompt 中加入 "Pixar style 3D animated character",并将用户的“人物卡”作为 attachments 传入。
  • 设定好对应的 aspectRatio。
Step 5: 强制标准化与总装拼接 (Normalization & Assembly)
  • 【格式绝对统一】:在最终拼接前,所有生成的素材(不论静图、截图还是生成视频),必须通过 FFmpeg 强行重塑为统一的目标分辨率(如 720x960)和目标帧率(如 -r 30)。若参数不一致,后续合成必将导致黑屏或音频断裂。
  • 创建 concat_list.txt,按顺序排列所有标准化后的视频片段,将其无声拼接为一整段主视频。
Step 6: 混音与商业字幕烧录 (Final Mix & Hardcoded Subtitles)
  • BGM (全自动配乐):必须自动添加 BGM,绝不要向用户索要。用 curl/wget 从公共库下载带有明显节奏感的真实 BGM,截取对应时长并加上音频淡入淡出(afade)。
  • 全局混流:使用 FFmpeg amix 滤镜,将 100% 音量的原声主音轨(master_audio.mp3)与降至 15%-25% 音量的 BGM 进行平滑混合,确保不会覆盖人声。
  • 商业字幕参数:调用 FFmpeg subtitles 滤镜,将 Step 2 提取的 .srt 烧录进画面底端。
    • 绝不溢出的防翻车设置:竖屏短视频中,必须设置相对适中的字号(如 FontSize=14)、留出底部安全区避开评论栏(如 MarginV=35),并开启描边和阴影确保任何背景下都可见。
    • 推荐模板:subtitles=subtitles.srt:force_style='Fontname=SimHei,FontSize=14,Bold=-1,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=1,Shadow=1,MarginV=35,Alignment=2'
  • 使用 -shortest 截断多余的音频或画面,输出带字幕与精美配乐的终极版成片 MP4。

Notes

  • 永远记住:AI 只负责生成“气氛”和“非特定人脸”,FFmpeg 负责保障“信息清晰度(文字/UI)”和“全局对齐”。
  • 处理素材时,严格使用 force_original_aspect_ratio=decrease 防止任何素材被拉伸变形。

评论

支持 Markdown