📚 加入我们的Skool社区,获得支持、优质内容等!
成为不断发展的社区的一员,帮助我们创建更多这样的内容
描述
一个用于生成短视频内容的开源自动视频创建工具。Short Video Maker将文本转语音、自动字幕、背景视频和音乐相结合,通过简单的文本输入创建引人入胜的短视频。
该项目旨在提供一个免费的替代方案,以取代大量的GPU耗电视频生成(以及昂贵的第三方API调用的免费替代方案)。它不会根据图像或图像提示从头开始生成视频。
该存储库由AI代理A-Z Youtube频道。我们鼓励您查看该频道,了解更多与人工智能相关的内容和教程。
服务器公开了一个 主控程序 以及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磁盘空间
概念
场景
每个视频都是由多个场景组合而成的。这些场景包括
- 文本:叙述,TTS将阅读并创建标题的文本。
- 搜索术语:服务器应该使用关键字来查找Pexels API的视频。如果找不到,则使用笑话术语(
nature,globe,space,ocean)
入门
Docker(推荐)
有三个docker镜像,用于三种不同的用例。一般来说,大多数时候你想旋转 tiny 一个。
微小
- 使用
tiny.enwhisper.cpp模型 - 使用
q4量化kokoro模型 CONCURRENCY=1以有限的资源克服Remotion带来的OOM错误VIDEO_CACHE_SIZE_IN_BYTES=2097152000(2gb)以有限的资源克服来自远程处理的OOM错误
docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= gyoridavid/short-video-maker:latest-tiny正常
- 使用
base.enwhisper.cpp模型 - 使用
fp32科科罗模型 CONCURRENCY=1以有限的资源克服Remotion带来的OOM错误VIDEO_CACHE_SIZE_IN_BYTES=2097152000(2gb)以有限的资源克服来自远程处理的OOM错误
docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= gyoridavid/short-video-maker:latest库达
如果你拥有一个Nvidia GPU,并且你想使用一个更大的带有GPU加速的耳语模型,你可以使用CUDA优化的Docker镜像。
- 使用
medium.enwhisper.cpp模型(带GPU加速) - 用途
fp32科科罗模型 CONCURRENCY=1以有限的资源克服Remotion带来的OOM错误VIDEO_CACHE_SIZE_IN_BYTES=2097152000(2gb)以有限的资源克服来自远程处理的OOM错误
docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= --gpus=all gyoridavid/short-video-maker:latest-cudaDocker编写
您可能会使用Docker Compose来运行n8n或其他服务,并希望将它们组合在一起。确保将共享网络添加到服务配置中。
version: "3"
services:
short-video-maker:
image: gyoridavid/short-video-maker:latest-tiny
environment:
- LOG_LEVEL=debug
- PEXELS_API_KEY=
ports:
- "3123:3123"
volumes:
- ./videos:/app/data/videos # expose the generated videos
如果您正在使用 自托管AI入门套件 您想添加 networks: ['demo'] 到\*\* short-video-maker 服务,这样你就可以用http://short-video-maker:3123在n8n中。
NPM
虽然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+上测试)
Windows是 非 目前支持(whisper.cpp安装偶尔会失败)。
Web用户界面
@mushitori制作了一个Web UI,用于从浏览器生成视频。
您可以加载它http://localhost:3123
环境变量
🟢配置
| 关键字 | 描述 | 默认值 |
|---|---|---|
| PEXELS_API_KEY(像素_像素_键) | 您的(免费)Pexels API密钥 | |
| LOGLEVEL | 引脚日志级别 | 信息 |
| WHISPER_VERBOSE | 是否应将WHISPER.cpp的输出转发到stdout | false |
| PORT | 服务器将监听的端口 | 3123 |
⚙️系统配置
| 关键字 | 描述 | 默认值 |
|---|---|---|
| KOKORO_MODEL_PRECISION | 要使用的KOKORO模型的大小。有效选项包括 fp32, fp16, q8, q4, q4f16 | 取决于,请参阅上面docker镜像的描述^^ |
| 并发性 | 并发性是指在渲染过程中并行打开的浏览器选项卡的数量。每个Chrome选项卡都会渲染网络内容,然后对其进行截图。调整此值有助于在资源有限的情况下运行项目。 | 视情况而定,请参阅上面docker镜像的描述^^ |
| 视频_CACHE_SIZE_IN_BYTES | 缓存[](https://remotion.dev/docs/offthreadvideo) 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 |
| DATA_DIR_PATH | 项目的数据目录 | ~/.ai-agents-az-video-generator 使用npm, /app/data 在Docker镜像中 |
| DOCKER | 项目是否在DOCKER容器中运行 | true 对于docker镜像,否则 false |
| DEV | 猜猜看! :) | false |
配置选项
| 关键字 | 描述 | 默认值 |
|---|---|---|
| paddingBack | 结束屏幕,讲述结束后视频应继续播放多长时间(以毫秒为单位)。 | 0 |
| 音乐 | 背景音乐的情绪。从Get获取可用选项 /api/music-tags 终点。 | 随机 |
| 字幕位置 | 应呈现字幕的位置。可能的选项: top, center, bottom默认值 | bottom |
| captionBackgroundColor | 活动字幕项的背景颜色。 | blue |
| 声音 | 科科罗的声音。 | af_heart |
| orientation | 视频方向。可能的选项有 portrait 和 landscape | portrait |
| musicVolume | 设置背景音乐的音量。可能的选项有 low medium high 和 muted | high |
用法
MCP服务器
服务器URL
/mcp/sse
/mcp/messages
可用工具
create-short-video创建短视频-LLM将找出正确的配置。如果你想使用特定的配置,你需要在提示中指定这些配置。get-video-status有点无用,它是用来检查视频的状态的,但由于人工智能代理在时间概念方面不是很好,你可能最终会使用REST API。
REST API
获取 /health
健康检查端点
curl --location 'localhost:3123/health'{
"status": "ok"
}发布 /api/short-video
curl --location 'localhost:3123/api/short-video' \
--header 'Content-Type: application/json' \
--data '{
"scenes": [
{
"text": "Hello world!",
"searchTerms": ["river"]
}
],
"config": {
"paddingBack": 1500,
"music": "chill"
}
}'{
"videoId": "cma9sjly700020jo25vwzfnv9"
}获取 /api/short-video/{id}/status
curl --location 'localhost:3123/api/short-video/cm9ekme790000hysi5h4odlt1/status'{
"status": "ready"
}获取 /api/short-video/{id}
curl --location 'localhost:3123/api/short-video/cm9ekme790000hysi5h4odlt1'响应:视频的二进制数据。
获取 /api/short-videos
curl --location 'localhost:3123/api/short-videos'{
"videos": [
{
"id": "cma9wcwfc0000brsi60ur4lib",
"status": "processing"
}
]
}删除 /api/short-video/{id}
curl --location --request DELETE 'localhost:3123/api/short-video/cma9wcwfc0000brsi60ur4lib'{
"success": true
}获取 /api/voices
curl --location 'localhost:3123/api/voices'[
"af_heart",
"af_alloy",
"af_aoede",
"af_bella",
"af_jessica",
"af_kore",
"af_nicole",
"af_nova",
"af_river",
"af_sarah",
"af_sky",
"am_adam",
"am_echo",
"am_eric",
"am_fenrir",
"am_liam",
"am_michael",
"am_onyx",
"am_puck",
"am_santa",
"bf_emma",
"bf_isabella",
"bm_george",
"bm_lewis",
"bf_alice",
"bf_lily",
"bm_daniel",
"bm_fable"
]获取 /api/music-tags
curl --location 'localhost:3123/api/music-tags'[
"sad",
"melancholic",
"happy",
"euphoric/high",
"excited",
"chill",
"uneasy",
"angry",
"dark",
"hopeful",
"contemplative",
"funny/quirky"
]故障排除
码头工人
服务器需要至少3gb的可用内存。确保为Docker分配足够的RAM。
如果您从Windows并通过wsl2运行服务器,则需要从 wsl实用程序2 -否则从Docker桌面设置。(除非使用run命令指定,否则Ubuntu不会限制资源)。
NPM
确保安装了所有必要的软件包。
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可以加速。
远程操作占用大量CPU 科科罗js 在CPU上运行。
是否有可用于生成视频的UI
否(尚未)
我可以为视频选择与Pexels不同的来源,还是提供我自己的视频
不
该项目可以从图像生成视频吗?
不
视频生成的依赖关系
| 依赖关系 | 版本 | 许可证 | 目的 |
|---|---|---|---|
| Whisper CPP | v1.5.5 | MIT | 字幕的语音转文本 |
| FFmpeg | ^2.1.3 | LGPL/GPL | 音频/视频操纵 |
| Kokoro.js | ^1.2.0 | MIT | 文本转语音生成 |
| API Pexels | 无 | Pexels术语 | 背景视频 |
如何做出贡献?
欢迎PR。 请参阅 贡献.md 有关设置本地开发环境的说明文件。
许可证
该项目根据 MIT许可证.
