Skip to main content
Glama

Short Video Maker MCP

by gyoridavid

描述

一款用于生成短视频内容的开源自动化视频创作工具。短视频制作器结合了文本转语音、自动字幕、背景视频和音乐,只需简单的文本输入即可制作引人入胜的短视频。

本项目旨在为耗费大量 GPU 算力的视频生成(以及昂贵的第三方 API 调用)提供一个免费的替代方案。它不会根据图像或图像提示从头生成视频。

该代码库由AI Agents AZ Youtube 频道开源。我们鼓励您访问该频道以获取更多与 AI 相关的内容和教程。

该服务器公开一个MCP和一个 REST 服务器。

虽然 MCP 服务器可以与 AI 代理(如 n8n)一起使用,但 REST 端点为视频生成提供了更大的灵活性。

您可以在此存储库中找到使用 REST/MCP 服务器创建的示例 n8n 工作流。

目录

入门

用法

信息

n8n 教程

示例

特征

  • 根据文本提示生成完整的短视频
  • 文本转语音
  • 自动生成字幕和样式
  • 通过 Pexels 搜索和选择背景视频
  • 具有类型/情绪选择的背景音乐
  • 同时充当 REST API 和模型上下文协议 (MCP) 服务器

工作原理

Shorts Creator 接受简单的文本输入和搜索词,然后:

  1. 使用 Kokoro TTS 将文本转换为语音
  2. 通过 Whisper 生成准确的字幕
  3. 从 Pexels 查找相关背景视频
  4. 使用 Remotion 组合所有元素
  5. 呈现具有完美定时字幕的专业短视频

限制

  • 该项目仅能生成带有英语配音的视频(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+ 版本上测试)

目前支持 Windows(whisper.cpp 安装偶尔会失败)。

概念

场景

每个视频由多个场景组成。这些场景包括

  1. 文本:旁白,TTS 将读取并创建字幕的文本。
  2. 搜索词:服务器用来从 Pexels API 查找视频的关键词。如果找不到,则会使用一些常用词(例如natureglobespaceocean )。

入门

Docker(推荐)

有三个 Docker 镜像,分别适用于三种不同的用例。一般来说,大多数情况下,你更倾向于使用tiny镜像。

微小的

  • 使用tiny.en whisper.cpp 模型
  • 使用q4量化 kokoro 模型
  • CONCURRENCY=1克服资源有限的 Remotion 造成的 OOM 错误
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb)用于克服资源有限的 Remotion 造成的 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.en whisper.cpp 模型
  • 使用fp32 kokoro 模型
  • CONCURRENCY=1克服资源有限的 Remotion 造成的 OOM 错误
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb)用于克服资源有限的 Remotion 造成的 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 加速的更大的 whisper 模型,则可以使用 CUDA 优化的 Docker 镜像。

  • 使用medium.en whisper.cpp 模型(带 GPU 加速)
  • 使用fp32 kokoro 模型
  • CONCURRENCY=1克服资源有限的 Remotion 造成的 OOM 错误
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb)用于克服资源有限的 Remotion 造成的 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-cuda

Docker compose

您可能使用 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服务,以便您可以通过 n8n 中的http://short-video-maker:3123访问它。

Web 用户界面

@mushitori 制作了一个 Web UI 来从您的浏览器生成视频。

您可以在http://localhost:3123上加载它

环境变量

🟢 配置

钥匙描述默认
PEXELS_API_KEY您的(免费)Pexels API 密钥
日志级别pino 日志级别信息
WHISPER_VERBOSEwhisper.cpp 的输出是否应该转发到 stdout错误的
港口服务器将监听的端口3123

⚙️ 系统配置

钥匙描述默认
KOKORO_模型_精度使用的 Kokoro 模型的大小。有效选项包括fp32fp16q8q4q4f16取决于,请参阅上面的 docker 镜像的描述 ^^
并发并发度是指渲染过程中并行打开的浏览器标签页数量。每个 Chrome 标签页都会渲染网页内容,然后进行截图。调整此值有助于在资源有限的情况下运行项目。取决于,请参阅上面的 docker 镜像的描述 ^^
视频缓存大小(字节)缓存Remotion 中的帧数。调整此值有助于在资源有限的情况下运行项目。取决于,请参阅上面的 docker 镜像的描述 ^^

⚠️ 危险区域

钥匙描述默认
WHISPER_MODEL使用哪种 whisper.cpp 模型。有效选项包括tinytiny.enbasebase.ensmallsmall.enmediummedium.enlarge-v1large-v2large-v3large-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端点获取可用选项。随机的
标题位置字幕的渲染位置。可选值: topcenterbottom 。默认值bottom
标题背景颜色活动标题项的背景颜色。blue
嗓音心的声音。af_heart
方向视频方向。可选方向包括portraitlandscapeportrait
音乐音量设置背景音乐的音量。可选音量包括low medium highmutedhigh

用法

MCP 服务器

服务器 URL

/mcp/sse

/mcp/messages

可用工具

  • create-short-video创建一个短视频 - LLM 会计算出正确的配置。如果你想使用特定的配置,你需要在提示框中指定。
  • get-video-status有点没用,它是用来检查视频状态的,但由于 AI 代理不太擅长时间概念,所以你最终可能会使用 REST API 来实现这一点。

REST API

获取/health

健康检查端点

curl --location 'localhost:3123/health'
{ "status": "ok" }

POST /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" ]

故障排除

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移动许可证视频合成和渲染
耳语CPPv1.5.5麻省理工学院语音转文字字幕
FFmpeg^2.1.3LGPL/GPL音频/视频处理
Kokoro.js^1.2.0麻省理工学院文本转语音生成
Pexels API不适用Pexels 条款背景视频

如何贡献?

欢迎提交 PR。有关设置本地开发环境的说明,请参阅CONTRIBUTING.md文件。

执照

该项目已获得MIT 许可

致谢

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gyoridavid/short-video-maker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server