Integrations
Provides community support and discussions through a Discord server for users seeking help with the Short Video Maker tool.
Offers containerized deployment options for running the Short Video Maker, including specialized images for CPU and NVIDIA GPU acceleration.
Utilizes FFmpeg for audio and video manipulation during the video creation process, enabling professional audio/video processing capabilities.
描述
一款用于生成短视频内容的开源自动化视频创作工具。短视频制作器结合了文本转语音、自动字幕、背景视频和音乐,只需简单的文本输入即可制作引人入胜的短视频。
本项目旨在为耗费大量 GPU 算力的视频生成(以及昂贵的第三方 API 调用)提供一个免费的替代方案。它不会根据图像或图像提示从头生成视频。
该代码库由AI Agents AZ Youtube 频道开源。我们鼓励您访问该频道以获取更多与 AI 相关的内容和教程。
该服务器公开一个MCP和一个 REST 服务器。
虽然 MCP 服务器可以与 AI 代理(如 n8n)一起使用,但 REST 端点为视频生成提供了更大的灵活性。
您可以在此存储库中找到使用 REST/MCP 服务器创建的示例 n8n 工作流。
目录
入门
用法
信息
n8n 教程
示例
特征
- 根据文本提示生成完整的短视频
- 文本转语音
- 自动生成字幕和样式
- 通过 Pexels 搜索和选择背景视频
- 具有类型/情绪选择的背景音乐
- 同时充当 REST API 和模型上下文协议 (MCP) 服务器
工作原理
Shorts Creator 接受简单的文本输入和搜索词,然后:
- 使用 Kokoro TTS 将文本转换为语音
- 通过 Whisper 生成准确的字幕
- 从 Pexels 查找相关背景视频
- 使用 Remotion 组合所有元素
- 呈现具有完美定时字幕的专业短视频
限制
- 该项目仅能生成带有英语配音的视频(kokoro-js 目前不支持其他语言)
- 背景视频来自 Pexels
一般要求
- 互联网
- 免费的 Pexels API 密钥
- ≥ 3 GB 可用 RAM,我建议 4 GB RAM
- ≥ 2 个 vCPU
- ≥ 5GB磁盘空间
新公共管理
虽然推荐使用 Docker 来运行项目,但您也可以使用 npm 或 npx 来运行它。除了常规要求外,运行服务器还需要满足以下条件。
支持的平台
- Ubuntu ≥ 22.04(Whisper.cpp 的 libc 2.5)
- 所需软件包:
git wget cmake ffmpeg curl make libsdl2-dev libnss3 libdbus-1-3 libatk1.0-0 libgbm-dev libasound2 libxrandr2 libxkbcommon-dev libxfixes3 libxcomposite1 libxdamage1 libatk-bridge2.0-0 libpango-1.0-0 libcairo2 libcups2
- 所需软件包:
- Mac 操作系统
- ffmpeg(
brew install ffmpeg
) - node.js(已在 22+ 版本上测试)
- ffmpeg(
目前不支持 Windows(whisper.cpp 安装偶尔会失败)。
概念
场景
每个视频由多个场景组成。这些场景包括
- 文本:旁白,TTS 将读取并创建字幕的文本。
- 搜索词:服务器用来从 Pexels API 查找视频的关键词。如果找不到,则会使用一些常用词(例如
nature
、globe
、space
、ocean
)。
入门
Docker(推荐)
有三个 Docker 镜像,分别适用于三种不同的用例。一般来说,大多数情况下,你更倾向于使用tiny
镜像。
微小的
- 使用
tiny.en
whisper.cpp 模型 - 使用
q4
量化 kokoro 模型 CONCURRENCY=1
克服资源有限的 Remotion 造成的 OOM 错误VIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb)用于克服资源有限的 Remotion 造成的 OOM 错误
普通的
- 使用
base.en
whisper.cpp 模型 - 使用
fp32
kokoro 模型 CONCURRENCY=1
克服资源有限的 Remotion 造成的 OOM 错误VIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb)用于克服资源有限的 Remotion 造成的 OOM 错误
库达
如果您拥有 Nvidia GPU 并且想要使用具有 GPU 加速的更大的 whisper 模型,则可以使用 CUDA 优化的 Docker 镜像。
- 使用
medium.en
whisper.cpp 模型(带 GPU 加速) - 使用
fp32
kokoro 模型 CONCURRENCY=1
克服资源有限的 Remotion 造成的 OOM 错误VIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb)用于克服资源有限的 Remotion 造成的 OOM 错误
Docker compose
您可能使用 Docker Compose 运行 n8n 或其他服务,并希望将它们组合起来。请确保将共享网络添加到服务配置中。
如果您正在使用自托管 AI 入门套件,您需要将networks: ['demo']
添加到** short-video-maker
服务,以便您可以通过 n8n 中的http://short-video-maker:3123访问它。
Web 用户界面
@mushitori 制作了一个 Web UI 来从您的浏览器生成视频。
您可以在http://localhost:3123上加载它
环境变量
🟢 配置
钥匙 | 描述 | 默认 |
---|---|---|
PEXELS_API_KEY | 您的(免费)Pexels API 密钥 | |
日志级别 | pino 日志级别 | 信息 |
WHISPER_VERBOSE | whisper.cpp 的输出是否应该转发到 stdout | 错误的 |
港口 | 服务器将监听的端口 | 3123 |
⚙️ 系统配置
钥匙 | 描述 | 默认 |
---|---|---|
KOKORO_模型_精度 | 要使用的 Kokoro 模型的大小。有效选项为fp32 、 fp16 、 q8 、 q4 、 q4f16 | 取决于,请参阅上面的 docker 镜像的描述 ^^ |
并发 | 并发度是指渲染过程中并行打开的浏览器标签页数量。每个 Chrome 标签页都会渲染网页内容,然后进行截图。调整此值有助于在资源有限的情况下运行项目。 | 取决于,请参阅上面的 docker 镜像的描述 ^^ |
视频缓存大小(字节) | 缓存Remotion 中的帧数。调整此值有助于在资源有限的情况下运行项目。 | 取决于,请参阅上面的 docker 镜像的描述 ^^ |
⚠️ 危险区域
钥匙 | 描述 | 默认 |
---|---|---|
WHISPER_MODEL | 使用哪种 whisper.cpp 模型。有效选项包括tiny 、 tiny.en 、 base 、 base.en 、 small 、 small.en 、 medium 、 medium.en 、 large-v1 、 large-v2 、 large-v3 、 large-v3-turbo | 取决于具体情况,请参阅上文中 docker 镜像的描述。对于 npm,默认选项是medium.en |
数据目录路径 | 项目的数据目录 | Docker 镜像中的~/.ai-agents-az-video-generator 和 npm、 /app/data |
DOCKER | 项目是否在 Docker 容器中运行 | 对于 Docker 镜像,则为true ,否则为false |
开发 | 猜测! :) | false |
配置选项
钥匙 | 描述 | 默认 |
---|---|---|
后边距 | 结束画面,旁白结束后视频应继续播放多长时间(以毫秒为单位)。 | 0 |
音乐 | 背景音乐的氛围。从 GET /api/music-tags 端点获取可用选项。 | 随机的 |
标题位置 | 字幕的渲染位置。可选值: top 、 center 、 bottom 。默认值 | bottom |
标题背景颜色 | 活动标题项的背景颜色。 | blue |
嗓音 | 心的声音。 | af_heart |
方向 | 视频方向。可选方向包括portrait 和landscape | portrait |
用法
MCP 服务器
服务器 URL
/mcp/sse
/mcp/messages
可用工具
create-short-video
创建一个短视频 - LLM 会计算出正确的配置。如果你想使用特定的配置,你需要在提示框中指定。get-video-status
有点没用,它是用来检查视频状态的,但由于 AI 代理不太擅长时间概念,所以你最终可能会使用 REST API 来实现这一点。
REST API
获取/health
健康检查端点
POST /api/short-video
获取/api/short-video/{id}/status
获取/api/short-video/{id}
响应:视频的二进制数据。
获取/api/short-videos
删除/api/short-video/{id}
获取/api/voices
获取/api/music-tags
故障排除
Docker
服务器至少需要 3GB 可用内存。请确保为 Docker 分配足够的 RAM。
如果您在 Windows 上通过 wsl2 运行服务器,则需要从wsl 实用程序 2设置资源限制 - 否则,请从 Docker Desktop 设置。(除非使用运行命令指定,否则 Ubuntu 不会限制资源)。
新公共管理
确保所有必要的软件包都已安装。
n8n
设置 MCP(或 REST)服务器取决于您运行 n8n 和服务器的方式。请遵循以下矩阵中的示例。
|n8n 正在本地运行,使用n8n start
|n8n 使用 Docker 在本地运行|n8n 在云端运行|
|---|---|---|---|
|short-video-maker
在 Docker 本地运行|http://localhost:3123
|视情况而定。技术上来说,你可以使用http://host.docker.internal:3123
因为它指向主机,但你也可以配置使用同一个网络,并使用服务名称进行通信,例如http://short-video-maker:3123
|无法工作 - 将short-video-maker
部署到云端|
|short-video-maker
正在使用 npm/npx 运行|http://localhost:3123
|http://host.docker.internal:3123
|无法工作 - 将short-video-maker
部署到云端|
|short-video-maker
正在云端运行|您应该使用您的 IP 地址http://{YOUR_IP}:3123
|您应该使用您的 IP 地址http://{YOUR_IP}:3123
|您应该使用您的 IP 地址http://{YOUR_IP}:3123
|
部署到云端
虽然每个 VPS 提供商都不同,并且不可能为所有提供商提供配置,但这里有一些提示。
- 使用 Ubuntu ≥ 22.04
- 拥有≥ 4gb RAM、≥ 2vCPU 和≥5gb 存储空间
- 使用pm2运行/管理服务器
- 将环境变量放入
.bashrc
文件(或类似文件)
常问问题
我可以使用其他语言吗?(法语、德语等)
很遗憾,目前还无法实现。Kokoro-js 仅支持英语。
我可以传递图像和视频吗?它可以将它们拼接在一起吗?
不
我应该使用npm
还是docker
运行该项目?
Docker 是运行该项目的推荐方式。
视频生成使用了多少 GPU?
老实说,没有太多——只有 whisper.cpp 可以加速。
Remotion 占用大量 CPU 资源,而Kokoro-js 则在 CPU 上运行。
是否有可用于生成视频的 UI
还没有)
我可以选择与 Pexels 不同的视频来源,或者提供我自己的视频
不
该项目可以从图像生成视频吗?
不
视频生成的依赖项
依赖关系 | 版本 | 执照 | 目的 |
---|---|---|---|
移除 | ^4.0.286 | 移动许可证 | 视频合成和渲染 |
耳语CPP | v1.5.5 | 麻省理工学院 | 语音转文字字幕 |
FFmpeg | ^2.1.3 | LGPL/GPL | 音频/视频处理 |
Kokoro.js | ^1.2.0 | 麻省理工学院 | 文本转语音生成 |
Pexels API | 不适用 | Pexels 条款 | 背景视频 |
如何贡献?
欢迎提交 PR。有关设置本地开发环境的说明,请参阅CONTRIBUTING.md文件。
执照
该项目已获得MIT 许可。
致谢
Related MCP Servers
- -securityAlicense-qualityA MCP server that creates graphic recordings by converting websites or text input into visual summaries using different prompt styles (standard, elementary, timeline).Last updated -TypeScriptMIT License
- AsecurityAlicenseAqualityAn MCP server providing video processing capabilities through FFmpeg, enabling dialog-based local video search, trimming, concatenation, and playback functionalities.Last updated -79PythonMIT License
- AsecurityAlicenseAqualityMCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.Last updated -77TypeScriptMIT License
- Rust