Short Video Maker MCP

by gyoridavid

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 接受简单的文本输入和搜索词,然后:

  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

用法

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

  • -
    security
    A
    license
    -
    quality
    A MCP server that creates graphic recordings by converting websites or text input into visual summaries using different prompt styles (standard, elementary, timeline).
    Last updated -
    TypeScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    An MCP server providing video processing capabilities through FFmpeg, enabling dialog-based local video search, trimming, concatenation, and playback functionalities.
    Last updated -
    7
    9
    Python
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    MCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.
    Last updated -
    7
    7
    TypeScript
    MIT License

View all related MCP servers

ID: pyvkl848iz