Markdown 自动转视频
将 Markdown 文章自动转换成完整视频,支持从脚本生成到视频合成的全流程自动化。
功能特点
- 智能压缩:将长文章压缩成 500 字左右的口播稿
- 保持风格:保留原文的核心观点和表达风格
- 口语化:自动转换成适合口播的表达方式
- 提取配图:自动识别并整理文章中的所有图片
- 时间轴建议:为每段口播内容匹配对应的配图
- TTS 语音合成:使用 TTSMaker API 生成语音(支持声音克隆)
- 文本动画:使用 Manim 生成文字动画效果
- 自动合成:使用 FFmpeg 合成最终视频
技术栈
- TTS 语音合成:TTSMaker API - 支持声音克隆和多语言
- 文本动画:Manim - Python 数学动画引擎,用于生成文字动画
- 字幕时间轴:基于 TTS 返回的音频时长自动计算
- 视频合成:FFmpeg - 合成语音、配图、字幕和动画
使用方法
模式 1:仅生成脚本(默认)
# 生成口播稿和视频脚本(短视频风格)
@markdown-to-video-script <文章路径>
输出:
- 口播稿(300 字左右,短视频风格)
- 配图列表
- 视频脚本时间轴
- 预计时长约 1 分钟
模式 2:自动生成视频(完整流程)
# 自动生成完整视频
@markdown-to-video-script <文章路径> --auto-generate
自动执行:
- 生成口播稿
- 调用 TTS API 生成语音
- 使用 Manim 生成文字动画
- 下载/处理配图
- 使用 FFmpeg 合成视频
模式 3:分步执行
# 步骤 1:生成脚本
@markdown-to-video-script <文章路径> --step script
# 步骤 2:生成语音
@markdown-to-video-script <文章路径> --step tts
# 步骤 3:生成动画
@markdown-to-video-script <文章路径> --step animation
# 步骤 4:合成视频
@markdown-to-video-script <文章路径> --step compose
输出内容
脚本模式输出
口播稿(500 字左右)
- 开场白(吸引注意力)
- 核心内容(2-3 个要点)
- 结尾(行动号召)
配图列表
- 图片序号
- 图片路径
- 图片描述
视频脚本
- 口播内容分段
- 每段对应的配图编号
- 建议停留时长
自动生成模式输出
- 音频文件:
output/audio.mp3 - 字幕文件:
output/subtitles.srt - 动画文件:
output/animations/*.mp4 - 最终视频:
output/final_video.mp4 - 项目文件:
output/project.json(包含所有元数据)
口播稿风格指南
V3 短视频风格(默认):
特点
- 节奏快,每句话简短有力
- 口语化表达,接地气
- 开头直接引导关注
- 结尾强力号召行动
- 总字数 300 字左右
- 视频时长约 1 分钟
结构
- 开头引导:"如需网址,关注后查看后台私信即可!"
- 热点引入:直接说重点,制造紧迫感
- 痛点共鸣:1-2 句话点出用户痛点
- 技巧讲解:简洁明了,不拖泥带水
- 价值强化:为什么选择这个方案
- 行动号召:"话不多说,一键三连,评论区见!"
语言特点
- 多用短句,避免长句
- 使用"直接"、"立刻"等紧迫词汇
- 适当使用感叹号表达情绪
- 保留核心"金句"和亮点
配图匹配规则
- 开场白:使用第一张配图或封面图
- 核心内容:按顺序匹配文章中的配图
- 结尾:使用总结性配图或二维码
- 停留时长:根据口播内容长度建议 3-8 秒
环境配置
必需依赖
# Python 依赖
pip install fastapi uvicorn selenium requests manim ffmpeg-python
# 系统依赖
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt-get install ffmpeg
# Windows
# 下载 FFmpeg 并添加到 PATH
TTS API 配置
- 克隆 TTS 项目:
git clone https://github.com/chen20250312/tts.git
cd tts
- 启动 TTS 服务:
docker-compose up -d
- 验证服务:
curl http://localhost:8000/docs
配置文件
在 skill 目录创建 config.json:
{
"tts": {
"api_url": "http://localhost:8000/api/tts",
"voice": "default",
"speed": 1.0,
"pitch": 1.0
},
"manim": {
"quality": "high",
"fps": 60,
"background_color": "#FFFFFF"
},
"ffmpeg": {
"video_codec": "libx264",
"audio_codec": "aac",
"resolution": "1920x1080",
"fps": 60
},
"output": {
"dir": "./output",
"keep_temp": false
}
}
脚本目录
所有脚本位于 scripts/ 子目录:
| 脚本 | 功能 |
|---|---|
generate_script.py |
生成口播稿和视频脚本 |
generate_tts.py |
调用 TTS API 生成语音 |
generate_animation.py |
使用 Manim 生成文字动画 |
download_images.py |
下载并处理配图 |
compose_video.py |
使用 FFmpeg 合成最终视频 |
auto_generate.py |
自动执行完整流程 |
示例
输入
用Gemini看YouTube效率提升10倍这2个技巧我藏了半年.md
输出
1. 口播稿(498 字)
大家好!今天分享两个我藏了半年的技巧,用Gemini看YouTube,效率直接提升10倍。
你有没有遇到过这种情况?YouTube上看到一个超棒的技术分享,2小时长,全英文,没字幕。想看,但一想到要花2小时还要边听边记笔记,就直接放弃了。
我之前也是这样,直到发现了这两个技巧。现在一个2小时的视频,我5分钟就能"读"完,还不会错过任何重点。
第一个技巧:一键提取完整字幕
不需要下载视频,也不需要安装插件。打开Gemini,直接把YouTube链接粘贴进去,然后输入:"请生成这个视频的完整字幕,不需要时间戳,整理成段落格式,并翻译成中文。"
点击运行,等一会就能看到完整字幕。我实测过中英文混杂的视频,Gemini都能精准识别。
第二个技巧:个性化输出核心内容
面对2小时的长视频,我们往往只想知道某个特定问题的看法。这时候可以用一段更强大的提示词,让Gemini像课代表一样帮你划重点。
它会输出视频标题、带时间戳的目录、核心摘要、关键要点,还有完整的按章节分段的转录文本。你可以快速浏览目录,直接跳到感兴趣的章节观看。
为什么选Gemini?
三个原因:第一,原生支持视频分析,不用下载转录;第二,100万Token上下文,可以处理超长视频;第三,国内免费可用,无需魔法。
在信息爆炸的时代,我们缺的不是信息,而是有效筛选和吸收信息的方法。善用AI,可以把我们从低效的信息处理中解放出来,把精力真正投入到思考和创造上。
好了,今天的分享就到这里。如果觉得有用,记得点赞转发!
2. 配图列表
- 互联网信息排泄链图
- 字幕提取效果截图
- 中英文混杂识别截图
- 输出效果截图
- 保存Gem截图
- 快速体验通道二维码
3. 视频脚本时间轴
| 时间段 | 口播内容 | 配图 | 停留时长 |
|---|---|---|---|
| 0:00-0:15 | 开场白 + 问题引入 | 封面图 | 5秒 |
| 0:15-0:30 | 场景描述 | 配图1(信息排泄链) | 5秒 |
| 0:30-1:00 | 第一个技巧介绍 | 配图2(字幕提取) | 8秒 |
| 1:00-1:20 | 实测效果展示 | 配图3(识别效果) | 6秒 |
| 1:20-1:50 | 第二个技巧介绍 | 配图4(输出效果) | 8秒 |
| 1:50-2:10 | 进阶技巧 | 配图5(保存Gem) | 6秒 |
| 2:10-2:30 | 总结 + 行动号召 | 配图6(二维码) | 5秒 |
总时长:约 2 分 30 秒
使用建议
- 先生成口播稿:检查是否保留了核心观点
- 调整配图顺序:确保视觉逻辑流畅
- 录制口播:可以根据实际情况微调文字
- 导入剪映:使用时间轴建议快速剪辑
注意事项
- 口播稿字数会根据内容复杂度在 450-550 字之间浮动
- 如果原文配图较少,会建议补充哪些类型的配图
- 时间轴仅供参考,实际剪辑时可根据节奏调整
- 保持原文的"金句"和核心观点不变
适用场景
- 公众号文章转短视频
- 技术教程转讲解视频
- 产品介绍转宣传视频
- 个人经验分享转 Vlog
让文章秒变视频脚本,从此告别手动整理!