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

Renderizado de vídeo en paralelo con panel de control en vivo, autodetección de GPU, sistema de puntos de control y concatenación mediante copia de flujo. El kit de herramientas de renderizado ffmpeg gratuito más potente.

Creado por Beeswax Pat con Claude Code · Libre y de código abierto para siempre

Características

  • Renderizado en paralelo — Divide los fotogramas entre N hilos de trabajo, concatena sin necesidad de volver a codificar

  • Autodetección de GPU — Analiza NVENC, VideoToolbox, AMF, VA-API, QSV con validación de 1 fotograma

  • Panel de control en vivo — Se abre automáticamente en tu navegador con progreso por trabajador, gráfico de FPS y tiempo estimado (ETA)

  • Sistema de puntos de control — Reducción del 93% en la sobrecarga de avance rápido para renderizados largos

  • Corrección de color — 5 ajustes preestablecidos integrados (noir, cálido, frío, cinematográfico, vintage) + filtros personalizados

  • Fusión de audio — Combina vídeo + audio con normalización de sonoridad, sin volver a codificar el vídeo

  • Salida determinista — El generador de números aleatorios con semilla garantiza que los trabajadores paralelos produzcan resultados idénticos a los secuenciales

  • Servidor MCP — Servidor del Protocolo de Contexto de Modelo con 6 herramientas, funciona con Claude Code, Claude Desktop y cualquier cliente MCP

  • Multiplataforma — Windows, macOS, Linux. Cualquier GPU o solo CPU. Requiere Node.js >= 18 + ffmpeg.

Related MCP server: ffmpeg-mcp

Requisitos

  • Node.js >= 18

  • ffmpeg instalado y en el PATH

Instalación

# 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

Inicio rápido

# 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)

El punto de entrada principal. Divide un renderizado entre trabajadores, muestra un panel de control en vivo y produce un MP4 final.

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
});

Escribir un trabajador

Los trabajadores reciben rangos de fotogramas a través de workerData y envían fotogramas BGRA sin procesar a 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 }));

Consulta examples/basic-worker.js para ver un ejemplo de trabajo completo.

Módulos

Módulo

Propósito

parallel-renderer

Grupo de hilos de N trabajadores con seguimiento de progreso

encoder

Canalización de fotogramas sin procesar a ffmpeg con contrapresión

gpu-detect

Descubrimiento + validación de codificador de hardware multiplataforma

config

Ajuste automático de trabajadores basado en resolución, RAM, CPU

concat

Unión de segmentos mediante copia de flujo (instantánea)

color-grade

Ajustes preestablecidos de filtros de vídeo de ffmpeg + cadenas personalizadas

audio-merge

Fusión de vídeo + audio con soporte para loudnorm

dashboard-server

Servidor HTTP sin dependencias con apertura automática del navegador

progress

Seguimiento de progreso por trabajador en terminal + JSON

checkpoint

Serialización de estado para renderizados largos

Benchmarks

Ejecuta los tuyos:

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

Pruebas

npm test

Un conjunto de pruebas de humo sin dependencias que cubre exportaciones de módulos, validación de entrada, seguridad de ruta del panel de control (vectores de recorrido + byte nulo + doble codificación), ida y vuelta de puntos de control y protocolo de enlace stdio del servidor MCP.

Servidor MCP

ffmpeg-render-pro incluye un servidor del Protocolo de Contexto de Modelo (MCP) con 6 herramientas. Funciona con Claude Code, Claude Desktop y cualquier cliente MCP.

Añadir a 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

Añadir a Claude Desktop

Añádelo a tu claude_desktop_config.json:

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

O, si prefieres no instalarlo globalmente:

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

Herramientas MCP

Herramienta

Descripción

detect_gpu

Analizar codificadores de hardware (NVENC, VideoToolbox, AMF, VA-API, QSV)

system_info

Mostrar núcleos de CPU, RAM, trabajadores recomendados, versión de ffmpeg

render_video

Renderizado en paralelo con panel de control en vivo

color_grade

Aplicar ajustes preestablecidos (noir, cálido, frío, cinematográfico, vintage) o filtros personalizados

merge_audio

Combinar vídeo + audio con normalización de sonoridad

concat_videos

Unir varios vídeos mediante copia de flujo (instantáneo, sin volver a codificar)

Habilidad de Claude Code

Este repositorio incluye una habilidad lista para usar de Claude Code. Para instalarla, copia la carpeta de la habilidad en tu directorio de habilidades de 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

Una vez instalada, Claude Code utilizará automáticamente la habilidad cuando le pidas renderizar vídeo o audio con ffmpeg.

Notas de seguridad

  • El servidor del panel de control se vincula solo a 127.0.0.1. Nunca es accesible desde otras máquinas en tu red.

  • Sin telemetría, sin llamadas a servidores externos, sin cargas de CDN. El panel de control se ejecuta completamente desde archivos locales utilizando fuentes del sistema.

  • El servidor MCP es una herramienta de sistema de archivos local. Cuando se conecta a un agente de IA, renderizará, leerá y escribirá archivos en cualquier lugar donde el usuario actual tenga acceso. Trátalo como cualquier otra herramienta habilitada para el sistema de archivos: ejecútalo solo con un agente de confianza y considera restringir el directorio de trabajo del proceso si lo usas con prompts no confiables.

  • La concatenación mediante copia de flujo utiliza archivos temporales en os.tmpdir(). Las rutas de salida que proporciones se escribirán tal cual; asegúrate de que tu ruta de salida sea donde deseas que esté.

Registro de cambios

Consulta CHANGELOG.md para ver las notas de la versión. Última: v1.2.0 — fase de endurecimiento (corrección crítica del panel de control, defensa contra recorrido de rutas, mejoras de rendimiento).

Licencia

MIT

Autor

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