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.

Описание

Инструмент для автоматизированного создания видео с открытым исходным кодом для создания короткометражного видеоконтента. Short Video Maker объединяет преобразование текста в речь, автоматические субтитры, фоновые видео и музыку для создания увлекательных коротких видеороликов из простых текстовых вводов.

Этот проект призван предоставить бесплатную альтернативу генерации видео, требующей больших ресурсов GPU (и бесплатную альтернативу дорогим вызовам сторонних API). Он не генерирует видео с нуля на основе изображения или запроса изображения.

Репозиторий был открыт на канале AI Agents AZ Youtube . Мы рекомендуем вам заглянуть на канал для получения большего количества контента и руководств, связанных с ИИ.

Сервер предоставляет доступ к MCP и REST-серверу.

Хотя сервер MCP можно использовать с агентом ИИ (например, n8n), конечные точки REST обеспечивают большую гибкость при генерации видео.

Примеры рабочих процессов n8n, созданных с помощью сервера REST/MCP, можно найти в этом репозитории .

Оглавление

Начиная

Использование

Информация

Учебник с n8n

Примеры

Функции

  • Создавайте полноценные короткие видеоролики из текстовых подсказок
  • Преобразование текста в речь
  • Автоматическая генерация и стилизация титров
  • Поиск и выбор фонового видео через Pexels
  • Фоновая музыка с выбором жанра/настроения
  • Выполнять функции сервера REST API и Model Context Protocol (MCP)

Как это работает

Shorts Creator вводит простые текстовые данные и поисковые запросы, а затем:

  1. Преобразует текст в речь с помощью Kokoro TTS
  2. Генерирует точные субтитры с помощью Whisper
  3. Находит соответствующие фоновые видео от Pexels
  4. Составляет все элементы с помощью Remotion
  5. Создает профессионально выглядящее короткое видео с идеально подобранными по времени субтитрами.

Ограничения

  • Проект способен генерировать видео только с английской озвучкой (kokoro-js на данный момент не поддерживает другие языки)
  • Фоновые видео взяты с сайта Pexels

Общие требования

  • интернет
  • бесплатный ключ API Pexels
  • ≥ 3 ГБ свободной оперативной памяти, я рекомендую 4 ГБ оперативной памяти
  • ≥ 2 виртуальных ЦП
  • ≥ 5 ГБ дискового пространства

НПМ

Хотя Docker — рекомендуемый способ запустить проект, вы можете запустить его с помощью npm или npx. Помимо общих требований, для запуска сервера необходимо следующее.

Поддерживаемые платформы

  • Ubuntu ≥ 22.04 (libc 2.5 для Whisper.cpp)
    • Необходимые пакеты: 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. Поисковые термины: ключевые слова, которые сервер должен использовать для поиска видео из API Pexels. Если ничего не найдено, используются шутливые термины ( nature , globe , space , ocean )

Начиная

Докер (рекомендуется)

Есть три образа docker для трех различных вариантов использования. Вообще говоря, в большинстве случаев вы хотите раскрутить tiny .

Крошечный

  • Использует модель tiny.en whisper.cpp
  • Использует квантованную модель кокоро q4
  • CONCURRENCY=1 для устранения ошибок OOM, возникающих при Remotion с ограниченными ресурсами
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 МБ) для устранения ошибок OOM, возникающих при работе Remotion с ограниченными ресурсами
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 для устранения ошибок OOM, возникающих при Remotion с ограниченными ресурсами
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 МБ) для устранения ошибок OOM, возникающих при работе Remotion с ограниченными ресурсами
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 и вы хотите использовать более мощную модель Whisper с ускорением GPU, вы можете использовать оптимизированный для CUDA образ Docker.

  • Использует модель medium.en whisper.cpp (с ускорением GPU)
  • Использует модель fp32 kokoro
  • CONCURRENCY=1 для устранения ошибок OOM, возникающих при Remotion с ограниченными ресурсами
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 МБ) для устранения ошибок OOM, возникающих при работе Remotion с ограниченными ресурсами
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-композиция

Вы можете использовать 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

Если вы используете стартовый комплект Self-hosted AI, вам необходимо добавить networks: ['demo'] к сервису ** short-video-maker чтобы вы могли получить к нему доступ по адресу http://short-video-maker:3123 в n8n.

Веб-интерфейс

@mushitori создал веб-интерфейс для генерации видео из вашего браузера.

Вы можете загрузить его по адресу http://localhost:3123

Переменные среды

🟢 Конфигурация

ключописаниепо умолчанию
PEXELS_API_KEYваш (бесплатный) ключ API Pexels
УРОВЕНЬ_ЛОГАуровень логарифма пиноинформация
WHISPER_VERBOSEследует ли перенаправлять вывод whisper.cpp в stdoutЛОЖЬ
ПОРТпорт, который будет прослушивать сервер3123

⚙️ Конфигурация системы

ключописаниепо умолчанию
KOKORO_MODEL_PRECISIONРазмер модели Kokoro для использования. Допустимые параметры: fp32 , fp16 , q8 , q4 , q4f16зависит, см. описания образов Docker выше ^^
КОНКУРЕНТНОСТЬconcurrency относится к тому, сколько вкладок браузера открыто параллельно во время рендеринга. Каждая вкладка 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
DATA_DIR_PATHкаталог данных проекта~/.ai-agents-az-video-generator с npm, /app/data в образах Docker
ДОКЕРзапущен ли проект в контейнере Dockertrue для образов Docker, в противном случае false
ДЕВпредполагать! :)false

Параметры конфигурации

ключописаниепо умолчанию
paddingBackКонечный экран, как долго должно воспроизводиться видео после окончания закадрового текста (в миллисекундах).0
музыкаНастроение фоновой музыки. Получите доступные параметры из конечной точки GET /api/music-tags .случайный
заголовокПозицияПозиция, в которой должны отображаться подписи. Возможные варианты: top , center , bottom . Значение по умолчаниюbottom
подписьЦвет фонаЦвет фона активного элемента подписи.blue
голосГолос Кокоро.af_heart
ориентацияОриентация видео. Возможные варианты: portrait и landscapeportrait

Использование

МСР-сервер

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

Поиск неисправностей

Докер

Серверу нужно не менее 3 ГБ свободной памяти. Убедитесь, что вы выделили достаточно оперативной памяти для Docker.

Если вы запускаете сервер из Windows и через wsl2, вам необходимо установить ограничения ресурсов с помощью утилиты wsl 2 , в противном случае установите их с помощью Docker Desktop. (Ubuntu не ограничивает ресурсы, если это не указано в команде run).

НПМ

Убедитесь, что установлены все необходимые пакеты.

н8н

Настройка сервера 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
  • Иметь ≥ 4 ГБ ОЗУ, ≥ 2 виртуальных ЦП и ≥ 5 ГБ памяти
  • Используйте pm2 для запуска/управления сервером
  • Поместите переменные среды в файл .bashrc (или аналогичный)

Часто задаваемые вопросы

Могу ли я использовать другие языки? (французский, немецкий и т. д.)

К сожалению, на данный момент это невозможно. Kokoro-js поддерживает только английский язык.

Могу ли я передавать изображения и видео и можно ли их сшить?

Нет

Стоит ли запускать проект с помощью npm или docker ?

Для запуска проекта рекомендуется использовать Docker.

Какой объем графического процессора используется для генерации видео?

Честно говоря, не так уж много — ускорить можно только whisper.cpp.

Remotion нагружает процессор, а Kokoro-js работает на процессоре.

Есть ли пользовательский интерфейс, который я могу использовать для генерации видео?

Еще нет)

Могу ли я выбрать другой источник видео, нежели Pexels, или предоставить свое собственное видео?

Нет

Может ли проект генерировать видео из изображений?

Нет

Зависимости для генерации видео

ЗависимостьВерсияЛицензияЦель
Перемещение^4.0.286Лицензия на отзывВидеокомпозиция и рендеринг
Шепот CPPверсия 1.5.5Массачусетский технологический институтПреобразование речи в текст для субтитров
FFmpeg^2.1.3LGPL/GPLМанипуляции с аудио/видео
Kokoro.js^1.2.0Массачусетский технологический институтГенерация текста в речь
API PexelsН/ДУсловия PexelsФоновые видео

Как внести свой вклад?

PR приветствуются. Инструкции по настройке локальной среды разработки см. в файле CONTRIBUTING.md.

Лицензия

Данный проект лицензирован в соответствии с лицензией MIT .

Благодарности

  • ❤️ Remotion для программной генерации видео
  • ❤️ Шепот для преобразования речи в текст
  • ❤️ Pexels для видеоконтента
  • ❤️ FFmpeg для обработки аудио/видео
  • ❤️ Кокоро для TTS
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Короткий видеоредактор MCP

  1. Оглавление
    1. Начиная
    2. Использование
    3. Информация
  2. Учебник с n8n
    1. Примеры
      1. Функции
        1. Как это работает
          1. Ограничения
            1. Общие требования
              1. НПМ
                1. Поддерживаемые платформы
              2. Концепции
                1. Сцена
              3. Начиная
                1. Докер (рекомендуется)
                2. Docker-композиция
              4. Веб-интерфейс
                1. Переменные среды
                  1. 🟢 Конфигурация
                  2. ⚙️ Конфигурация системы
                  3. ⚠️ Опасная зона
                2. Параметры конфигурации
                  1. Использование
                    1. МСР-сервер
                    2. URL-адреса серверов
                    3. Доступные инструменты
                  2. REST-API
                    1. ПОЛУЧИТЬ /health
                    2. ОТПРАВИТЬ /api/short-video
                    3. ПОЛУЧИТЬ /api/short-video/{id}/status
                    4. ПОЛУЧИТЬ /api/short-video/{id}
                    5. ПОЛУЧИТЬ /api/short-videos
                    6. УДАЛИТЬ /api/short-video/{id}
                    7. ПОЛУЧИТЬ /api/voices
                    8. ПОЛУЧИТЬ /api/music-tags
                  3. Поиск неисправностей
                    1. Докер
                    2. НПМ
                  4. н8н
                    1. Развертывание в облаке
                      1. Часто задаваемые вопросы
                        1. Могу ли я использовать другие языки? (французский, немецкий и т. д.)
                        2. Могу ли я передавать изображения и видео и можно ли их сшить?
                        3. Стоит ли запускать проект с помощью npm или docker ?
                        4. Какой объем графического процессора используется для генерации видео?
                        5. Есть ли пользовательский интерфейс, который я могу использовать для генерации видео?
                        6. Могу ли я выбрать другой источник видео, нежели Pexels, или предоставить свое собственное видео?
                        7. Может ли проект генерировать видео из изображений?
                        8. Зависимости для генерации видео
                        9. Как внести свой вклад?
                        10. Лицензия
                        11. Благодарности

                      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