# AiAutoVideo **Repository Path**: leejersey/ai-auto-video ## Basic Information - **Project Name**: AiAutoVideo - **Description**: 自动化教学视频生成系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-28 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AiAutoVideo - 自动化教学视频生成系统 🎬 从"主题"到"教学视频"的全自动化工作流 ## ✨ 功能特点 - **智能脚本生成**: DeepSeek 自动生成结构化分镜脚本(爆款文案风格) - **Tavily 深度搜索**: 多角度联网搜索,获取干货内容(技术点、学习路径) - **多种图像来源**: - Nano Banana API 自动生成(信息图风格) - 即梦 API 自动生成 - 手动上传(显示中文提示词供参考) - **自然语音合成**: Edge-TTS 生成自然流畅的中文配音 - **智能视频合成**: - 视频时长自动匹配音频(解说词不会被截断) - Ken Burns 动画效果(缩放/平移) - 淡入转场效果 - 片头片尾卡片 - **在线视频预览**: 生成完成后可直接播放预览和下载 ## 📁 项目结构 ``` AiAutoVideo/ ├── backend/ # 后端服务 (FastAPI) │ ├── app/ │ │ ├── core/ # 核心配置 │ │ ├── models/ # Pydantic 数据模型 │ │ ├── services/ # 业务服务 │ │ │ ├── deepseek.py # DeepSeek 脚本生成 │ │ │ ├── tavily_search.py # Tavily 深度搜索 │ │ │ ├── tts.py # Edge-TTS 语音合成 │ │ │ ├── image_gen.py # 图像生成 (Nano/即梦) │ │ │ ├── video.py # FFmpeg 视频合成 │ │ │ └── pipeline.py # 完整流水线 │ │ └── api/ # API 路由 │ ├── outputs/ # 输出目录(视频、音频、图片) │ ├── environment.yml # Conda 环境 │ └── requirements.txt ├── frontend/ # Next.js 前端 │ └── src/app/page.tsx # 主页面 ├── start.bat # Windows 一键启动 ├── .gitignore └── README.md ``` ## 🚀 快速开始 ### 方式一:一键启动(推荐) 双击运行 `start.bat`,自动完成环境配置和服务启动。 ### 方式二:手动启动 #### 1. 环境准备 ```bash # 创建 Conda 环境 cd backend conda env create -f environment.yml conda activate aivideo # 或使用 pip pip install -r requirements.txt ``` #### 2. 配置环境变量 在 `backend` 目录下创建 `.env` 文件: ```env # 必填 - 脚本生成 DEEPSEEK_API_KEY=your_deepseek_key # 可选 - 联网搜索(推荐,可获取更详细的干货内容) TAVILY_API_KEY=your_tavily_key # 图像生成(至少配置一个,或使用手动上传) NANO_BANANA_API_KEY=your_nano_banana_key JIMENG_API_KEY=your_jimeng_key ``` #### 3. 启动后端 ```bash cd backend python run.py ``` 后端运行在 http://localhost:8002 #### 4. 启动前端 ```bash cd frontend npm install npm run dev ``` 前端运行在 http://localhost:3000 ## 📡 API 接口 | 端点 | 方法 | 描述 | |------|------|------| | `/api/generate` | POST | 生成脚本(含 Tavily 深度搜索) | | `/api/task/{task_id}` | GET | 查询任务状态和进度 | | `/api/task/{task_id}/script` | GET | 获取生成的脚本 | | `/api/script/edit` | PUT | 编辑分镜脚本 | | `/api/task/{task_id}/scenes` | PUT | 更新分镜图像模式 | | `/api/upload_image/{task_id}/{scene_id}` | POST | 上传分镜图片 | | `/api/task/{task_id}/confirm` | POST | 确认并开始视频合成 | | `/api/video/{task_id}` | GET | 下载/播放生成的视频 | ## 🔄 工作流程 ``` 用户输入主题 + 时长 ↓ Tavily 深度搜索(3个角度查询,获取干货) ↓ DeepSeek 生成分镜脚本 • 爆款标题(数字+痛点) • 5-6个分镜(每个10-12秒) • 中文图像提示词(信息图风格) • 片头/片尾文案 ↓ 用户编辑/确认脚本 ↓ 选择每个分镜的图像来源 ↓ ┌─────────────────────────────────┐ │ 并行处理: │ │ • Edge-TTS 生成语音 │ │ • 获取/等待分镜图片 │ └─────────────────────────────────┘ ↓ FFmpeg 合成视频 • 视频时长 = 音频时长(自动匹配) • Ken Burns 动画效果 • 片头片尾卡片 ↓ 在线预览 / 下载视频 ``` ## 🛠 技术栈 - **后端**: Python 3.10+ / FastAPI - **AI 引擎**: - DeepSeek (脚本生成) - Tavily (深度搜索) - Nano Banana / 即梦 (图像生成) - **音视频**: Edge-TTS / FFmpeg / imageio-ffmpeg - **前端**: Next.js 14 / React / TailwindCSS ## ❓ 常见问题 ### Q: 视频生成失败? A: 检查后端命令行窗口的错误日志,常见原因: - API Key 未配置或无效 - 图像未上传(手动上传模式) - 网络连接问题 ### Q: 端口被占用? A: `start.bat` 会自动关闭旧进程。手动修改端口: - 后端:`backend/app/core/config.py` 中的 `port` - 前端:`frontend/src/app/page.tsx` 中的 `API_BASE` ### Q: 解说词被截断? A: 已优化!视频时长现在自动匹配音频时长,解说词不会被截断。 ### Q: 图片中没有中文? A: 图像提示词已优化为中文,但最终效果取决于图像生成 API 的中文渲染能力。 ## 📄 License MIT