narrated-video
Skill2 starsChanged 3 months agoApache-2.0View on GitHub
专业级画音同步纵向短视频(3:4 MP4)自动合成技能。基于标准的音频/图片目录,精准对齐逐段旁白语音(Edge TTS)与同编号高上下文配图,自动生成 0.6s 优雅交叉淡化转场、音视频流封装、分秒级时间轴与完整构建报告。适用于tech-article、midlife-article和business-article的素材对接。
5 other projects use a version of this.
Adopted by
Most recently taken up by
- AI-Business-Tools/claude-codetheir own version, first seen Nov 1, 2026
- Carthavate/narrated-video-templatetheir own version, first seen Nov 1, 2026
- every-app/video-skillstheir own version, first seen Oct 17, 2026
- lumisum/article-expertword for word, first seen Aug 12, 2026
- AvyanshKatiyar/narrated-videotheir own version, first seen Jul 28, 2026
Other versions5 projects use a version of this.
Word for word · 1
- lumisum/article-expert★ 2100% same
Edited · 0
None found.
Wrote their own version · 4
- every-app/video-skills★ 14same name
- AI-Business-Tools/claude-code★ 5same name
- AvyanshKatiyar/narrated-video★ 0same name
- Carthavate/narrated-video-template★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- business-articleSkill
- equity-fundamentals-reviewSkill
- lumisun-writerSkill
- midlife-articleSkill
- tech-articleSkill
- tech-doc-to-wechatSkill
- video-coverSkill
- wechat-articleSkill
The file
Files
narrated-video
用户只提供一个video/目录。本技能按旁白清单匹配图片和音频,以音频真实时长建立时间轴,生成3:4纵向成片。
开始前必须完整读取references/input_contract.md。
标准输入
tech-article、midlife-article和business-article的S7会准备除图片外的全部素材:
[topic]/video/
├── narration_segments.jsonl
├── audio_manifest.json
├── images/ # 用户只在这里放入同编号图片
│ ├── section_01.png
│ └── section_02.png
└── audio/
├── section_01.mp3
└── section_02.mp3图片可以使用1、2、3等阿拉伯数字,也可以使用旁白ID,如section_01。脚本根据ID尾部数字匹配两种命名;同一编号出现多个候选时必须停止,不能任意选取。
工作流
- 读取
narration_segments.jsonl,按order确定顺序; - 从
images/和audio/匹配同编号素材; - 检查图片像素尺寸、宽高比和放大风险;
- 使用
ffprobe读取每段音频真实时长; - 将每张3:4图片完整放入同画幅纵向画布,当前音频播放期间画面保持静止;
- 相邻图片之间使用约0.6秒交叉淡化,只改变画面,不重叠、不截断旁白;
- 由FFmpeg合成H.264/AAC视频;
- 在同一个
video/目录输出MP4、时间轴和构建报告; - 验证分辨率、音视频流、总时长、片段数量和图片画质风险。
画面原则
- 默认输出
1080×1440、3:4纵向视频; - 单张图片在本段旁白期间不平移、不滚动、不缩放、不漂浮;
- 图片不拉伸、不强裁切,上方场景与下方信息图完整可见;
- 比例不足时使用克制的中性留白补齐,不制造虚化运动背景;
- 3:4图片建议不低于
1080×1440;常见1024×1365只需轻微缩放; - 需要放大时使用Lanczos高质量缩放和轻量锐化,但不能凭空恢复细节;
- 放大超过1.5倍属于明显风险,应优先对原图做AI超分;
- 含中文、数字、代码或信息结构的图片在超分后必须人工复核;
- 转场只使用克制的交叉淡化,不使用推拉、炫光、旋转或无关特效;
- 中间文件只写入临时目录,素材目录保持清楚。
执行
python skills/narrated-video/scripts/build_narrated_video.py \
/absolute/topic/path/video常用可选参数:
--output /absolute/path/to/final_video.mp4
--width 1080
--height 1440
--transition-duration 0.6
--image-quality-policy strict
--overwrite默认best-effort模式会完成合成,并把每张图的原始尺寸、放大倍数和风险写入报告。发布级成片建议使用strict;任何图片需要放大超过1.5倍时先停止并处理原图。
输出写回用户提供的video/目录:
final_video.mp4
video_timeline.json
video_build_report.json完成定义
只有以下条件全部满足才可宣布完成:
- 图片、音频和旁白数量一致,编号连续、无重复、无歧义;
- 每张图片与同编号旁白、音频表达同一段内容;
- 每张图片的原始尺寸、放大倍数和画质等级已记录;
- 每段静态画面持续到对应音频结束,成片总时长与音频总时长基本一致;
- 相邻画面完成交叉淡化,旁白连续且不被转场截断;
- MP4包含H.264视频流与AAC音频流,分辨率和时长通过检测;
- 时间轴和构建报告均已写入输入目录。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

