Skip to main content
Glama
  ╔══════════════════════════════════════════════════════╗
  ║                                                      ║
  ║   ████████ ████████ ██    ██ ██████  ████████  ████  ║
  ║   ██       ██       ███  ███ ██   ██ ██       ██     ║
  ║   ██████   ██████   ██ ██ ██ ██████  ██████   ██  ██ ║
  ║   ██       ██       ██    ██ ██      ██       ██  ██ ║
  ║   ██       ██       ██    ██ ██      ████████  ████  ║
  ║                                                      ║
  ║   ██████  ████████ ██    ██ ██████  ████████ ██████  ║
  ║   ██   ██ ██       ███   ██ ██   ██ ██       ██   ██ ║
  ║   ██████  ██████   ██ ██ ██ ██   ██ ██████   ██████  ║
  ║   ██   ██ ██       ██  ████ ██   ██ ██       ██   ██ ║
  ║   ██   ██ ████████ ██    ██ ██████  ████████ ██   ██ ║
  ║                                                      ║
  ║        ██████  ██████   ████                         ║
  ║        ██   ██ ██   ██ ██  ██                        ║
  ║        ██████  ██████  ██  ██                        ║
  ║        ██      ██   ██ ██  ██                        ║
  ║        ██      ██   ██  ████                         ║
  ║                                                      ║
  ║  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░ 8 WRKRS    ║
  ║  GPU: AUTO   DASHBOARD: LIVE   CONCAT: INSTANT       ║
  ╚══════════════════════════════════════════════════════╝

ffmpeg-render-pro

npm version License: MIT Platform: Cross-platform Node.js MCP Server

Параллельный рендеринг видео с живой панелью мониторинга, автоопределением GPU, системой контрольных точек и объединением потоков без перекодирования. Самый мощный бесплатный инструментарий для рендеринга через ffmpeg.

Создано Beeswax Pat с помощью Claude Code · Бесплатно и с открытым исходным кодом навсегда

Возможности

  • Параллельный рендеринг — разделение кадров между N рабочими потоками, объединение без повторного кодирования

  • Автоопределение GPU — проверка NVENC, VideoToolbox, AMF, VA-API, QSV с валидацией по 1 кадру

  • Живая панель мониторинга — автоматическое открытие в браузере с прогрессом по каждому потоку, графиком FPS и расчетным временем завершения (ETA)

  • Система контрольных точек — сокращение на 93% накладных расходов при ускоренной перемотке для длинных рендеров

  • Цветокоррекция — 5 встроенных пресетов (noir, warm, cool, cinematic, vintage) + пользовательские фильтры

  • Объединение аудио — совмещение видео и аудио с нормализацией громкости без перекодирования видео

  • Детерминированный вывод — использование генератора случайных чисел с начальным значением (seed) гарантирует, что параллельные потоки дают результат, идентичный последовательному рендерингу

  • MCP-сервер — сервер протокола Model Context Protocol с 6 инструментами, работает с Claude Code, Claude Desktop и любым MCP-клиентом

  • Кроссплатформенность — Windows, macOS, Linux. Любой GPU или только CPU. Требуется Node.js >= 18 + ffmpeg.

Related MCP server: ffmpeg-mcp

Требования

  • Node.js >= 18

  • ffmpeg установлен и добавлен в PATH

Установка

# Global install gives you the ffmpeg-render-pro + ffmpeg-render-pro-mcp binaries
npm install -g ffmpeg-render-pro

# Or clone the repo directly
git clone https://github.com/beeswaxpat/ffmpeg-render-pro.git
cd ffmpeg-render-pro

Быстрый старт

# System info (workers, RAM, CPU, ffmpeg version)
ffmpeg-render-pro info

# Probe hardware encoders
ffmpeg-render-pro detect-gpu

# 5s benchmark render (dashboard auto-opens at http://127.0.0.1:8080)
ffmpeg-render-pro benchmark

# Longer render, custom resolution
ffmpeg-render-pro benchmark --duration=30 --width=1080 --height=1920 --fps=30

# Force CPU / GPU encoding
ffmpeg-render-pro detect-gpu --cpu
ffmpeg-render-pro detect-gpu --gpu

CLI

ffmpeg-render-pro info                # System snapshot
ffmpeg-render-pro detect-gpu          # Probe hardware encoders
ffmpeg-render-pro render <worker.js>  # Render with your worker script
ffmpeg-render-pro benchmark           # Quick 5s test render

API

const {
  renderParallel,    // Core: parallel rendering engine
  createEncoder,     // Pipe raw frames to ffmpeg
  detectGPU,         // Cross-platform GPU detection
  getConfig,         // Auto-tune workers, codec selection
  concatSegments,    // Stream-copy segment joining
  colorGrade,        // Apply color grades (presets or custom)
  mergeAudio,        // Combine video + audio
  startDashboard,    // Live progress dashboard
  saveCheckpoint,    // Checkpoint serialization
  loadCheckpoint,    // Checkpoint restoration
} = require('ffmpeg-render-pro');

renderParallel(options)

Основная точка входа. Разделяет рендеринг между рабочими потоками, отображает живую панель мониторинга и создает итоговый MP4-файл.

await renderParallel({
  workerScript: './my-worker.js',  // Your frame generator
  outputPath: './output.mp4',
  width: 1920,
  height: 1080,
  fps: 60,
  duration: 60,        // seconds
  title: 'My Render',
  autoOpen: true,      // auto-open dashboard in browser
});

Написание рабочего потока (Worker)

Рабочие потоки получают диапазоны кадров через workerData и передают необработанные кадры BGRA в ffmpeg:

const { workerData, parentPort } = require('worker_threads');
const { spawn } = require('child_process');

const { width, height, fps, startFrame, endFrame, segmentPath, workerId } = workerData;

// Spawn ffmpeg encoder
const ffmpeg = spawn('ffmpeg', [
  '-y', '-f', 'rawvideo', '-pixel_format', 'bgra',
  '-video_size', `${width}x${height}`, '-framerate', String(fps),
  '-i', 'pipe:0',
  '-c:v', 'libx264', '-preset', 'fast', '-crf', '20',
  '-pix_fmt', 'yuv420p', '-movflags', '+faststart',
  segmentPath,
], { stdio: ['pipe', 'pipe', 'pipe'] });

const buffer = Buffer.alloc(width * height * 4);

for (let f = startFrame; f < endFrame; f++) {
  // Fill buffer with your frame data (BGRA format)
  renderMyFrame(f, buffer);

  // Write with backpressure
  const ok = ffmpeg.stdin.write(buffer);
  if (!ok) await new Promise(r => ffmpeg.stdin.once('drain', r));

  // Report progress
  parentPort.postMessage({ type: 'progress', workerId, pct: ..., fps: ..., frame: ..., eta: ... });
}

ffmpeg.stdin.end();
ffmpeg.on('close', () => parentPort.postMessage({ type: 'done', workerId }));

Смотрите examples/basic-worker.js для получения полного рабочего примера.

Модули

Модуль

Назначение

parallel-renderer

Пул потоков из N воркеров с отслеживанием прогресса

encoder

Передача необработанных кадров в ffmpeg с контролем нагрузки

gpu-detect

Кроссплатформенное обнаружение и проверка аппаратных кодировщиков

config

Автоматическая настройка воркеров на основе разрешения, RAM, CPU

concat

Мгновенное объединение сегментов через копирование потока

color-grade

Пресеты видеофильтров ffmpeg + пользовательские цепочки

audio-merge

Объединение видео и аудио с поддержкой loudnorm

dashboard-server

HTTP-сервер без зависимостей с автооткрытием в браузере

progress

Отслеживание прогресса в терминале и JSON для каждого воркера

checkpoint

Сериализация состояния для длинных рендеров

Тесты производительности (Benchmarks)

Запустите свои собственные:

node examples/render-test.js --duration=5
node examples/render-test.js --duration=30
node examples/render-test.js --duration=60 --width=1080 --height=1920

Тесты

npm test

Набор тестов без зависимостей, охватывающий экспорт модулей, валидацию входных данных, безопасность путей панели мониторинга (обход каталогов + null-byte + векторы двойного кодирования), проверку контрольных точек и рукопожатие stdio MCP-сервера.

MCP-сервер

ffmpeg-render-pro включает сервер Model Context Protocol (MCP) с 6 инструментами. Работает с Claude Code, Claude Desktop и любым MCP-клиентом.

Добавление в Claude Code

# After `npm install -g ffmpeg-render-pro` the MCP binary is on your PATH:
claude mcp add --transport stdio ffmpeg-render-pro -- ffmpeg-render-pro-mcp

# Or without global install (uses npx):
claude mcp add --transport stdio ffmpeg-render-pro -- npx --yes --package=ffmpeg-render-pro ffmpeg-render-pro-mcp

Добавление в Claude Desktop

Добавьте в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "ffmpeg-render-pro": {
      "command": "ffmpeg-render-pro-mcp"
    }
  }
}

Или, если вы предпочитаете не устанавливать глобально:

{
  "mcpServers": {
    "ffmpeg-render-pro": {
      "command": "npx",
      "args": ["--yes", "--package=ffmpeg-render-pro", "ffmpeg-render-pro-mcp"]
    }
  }
}

Инструменты MCP

Инструмент

Описание

detect_gpu

Проверка аппаратных кодировщиков (NVENC, VideoToolbox, AMF, VA-API, QSV)

system_info

Показать ядра CPU, RAM, рекомендуемое количество воркеров, версию ffmpeg

render_video

Параллельный рендеринг с живой панелью мониторинга

color_grade

Применение пресетов (noir, warm, cool, cinematic, vintage) или пользовательских фильтров

merge_audio

Объединение видео и аудио с нормализацией громкости

concat_videos

Мгновенное объединение нескольких видео через копирование потока (без перекодирования)

Навык (Skill) для Claude Code

Этот репозиторий включает готовый к использованию навык Claude Code. Чтобы установить его, скопируйте папку навыка в ваш каталог навыков Claude:

# macOS / Linux
cp -r .claude/skills/ffmpeg-render-pipeline ~/.claude/skills/

# Windows
xcopy .claude\skills\ffmpeg-render-pipeline %USERPROFILE%\.claude\skills\ffmpeg-render-pipeline\ /E /I

После установки Claude Code будет автоматически использовать этот навык, когда вы попросите его отрендерить видео или аудио с помощью ffmpeg.

Примечания по безопасности

  • Сервер панели мониторинга привязывается только к 127.0.0.1. Он недоступен с других машин в вашей сети.

  • Никакой телеметрии, никаких обращений к внешним серверам, никаких загрузок с CDN. Панель мониторинга работает полностью на локальных файлах с использованием системных шрифтов.

  • MCP-сервер — это инструмент для работы с локальной файловой системой. При подключении к ИИ-агенту он будет рендерить, читать и записывать файлы везде, где есть доступ у текущего пользователя. Относитесь к нему как к любому другому инструменту с доступом к файловой системе: запускайте его только с доверенным агентом и рассмотрите возможность ограничения рабочей директории процесса, если используете его с недоверенными промптами.

  • Объединение через копирование потока использует временные файлы в os.tmpdir(). Указанные вами пути вывода записываются как есть — убедитесь, что путь вывода соответствует вашим ожиданиям.

Журнал изменений

Смотрите CHANGELOG.md для примечаний к выпуску. Последняя версия: v1.2.0 — усиление безопасности (критическое исправление панели мониторинга, защита от обхода путей, улучшения производительности).

Лицензия

MIT

Автор

Beeswax Pat

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A cinema-grade video production MCP server that enables automated website recording, editing, and AI-powered narration using ffmpeg and Playwright. It provides tools for color grading, captioning, and converting videos into social media formats through natural language commands.
    82
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides 17 FFmpeg-based tools for video and audio processing, including conversion, compression, and editing. It enables AI assistants to perform complex media tasks like extracting audio, adding watermarks, and merging videos using natural language.
    168
    2

Latest Blog Posts

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/beeswaxpat/ffmpeg-render-pro'

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