ffmpeg-render-pro
╔══════════════════════════════════════════════════════╗
║ ║
║ ████████ ████████ ██ ██ ██████ ████████ ████ ║
║ ██ ██ ███ ███ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ██ ██ ████████ ████ ║
║ ║
║ ██████ ████████ ██ ██ ██████ ████████ ██████ ║
║ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██ ██ ██████ ██████ ║
║ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ║
║ ██ ██ ████████ ██ ██ ██████ ████████ ██ ██ ║
║ ║
║ ██████ ██████ ████ ║
║ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ████ ║
║ ║
║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░ 8 WRKRS ║
║ GPU: AUTO DASHBOARD: LIVE CONCAT: INSTANT ║
╚══════════════════════════════════════════════════════╝ffmpeg-render-pro
Paralleles Video-Rendering mit Live-Dashboard, automatischer GPU-Erkennung, Checkpoint-System und Stream-Copy-Concat. Das leistungsfähigste kostenlose ffmpeg-Rendering-Toolkit.
Entwickelt von Beeswax Pat mit Claude Code · Für immer kostenlos und Open Source
Funktionen
Paralleles Rendering — Aufteilen von Frames auf N Worker-Threads, Zusammenfügen ohne erneute Encodierung
Automatische GPU-Erkennung — Testet NVENC, VideoToolbox, AMF, VA-API, QSV mit 1-Frame-Validierung
Live-Dashboard — Öffnet sich automatisch in Ihrem Browser mit Fortschritt pro Worker, FPS-Diagramm und ETA
Checkpoint-System — 93% Reduzierung des Overheads beim Vorspulen für lange Renderings
Color Grading — 5 integrierte Presets (noir, warm, cool, cinematic, vintage) + benutzerdefinierte Filter
Audio-Merge — Kombinieren von Video + Audio mit Lautstärken-Normalisierung, ohne erneute Video-Encodierung
Deterministische Ausgabe — Seeded RNG stellt sicher, dass parallele Worker identische Ergebnisse wie bei sequenzieller Verarbeitung liefern
MCP-Server — Model Context Protocol Server mit 6 Tools, funktioniert mit Claude Code, Claude Desktop und jedem MCP-Client
Plattformübergreifend — Windows, macOS, Linux. Jede GPU oder nur CPU. Erfordert Node.js >= 18 + ffmpeg.
Related MCP server: ffmpeg-mcp
Anforderungen
Node.js >= 18
ffmpeg installiert und im PATH
Installation
# 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-proSchnellstart
# 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 --gpuCLI
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 renderAPI
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)
Der Haupteinstiegspunkt. Teilt ein Rendering auf Worker auf, zeigt ein Live-Dashboard an und erstellt ein finales 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
});Einen Worker schreiben
Worker erhalten Frame-Bereiche über workerData und leiten rohe BGRA-Frames an ffmpeg weiter:
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 }));Siehe examples/basic-worker.js für ein vollständiges Arbeitsbeispiel.
Module
Modul | Zweck |
| N-Worker-Thread-Pool mit Fortschrittsverfolgung |
| Raw-Frame-Pipe an ffmpeg mit Backpressure |
| Plattformübergreifende Hardware-Encoder-Erkennung + Validierung |
| Automatische Worker-Optimierung basierend auf Auflösung, RAM, CPU |
| Stream-Copy-Segment-Verbindung (sofort) |
| ffmpeg-Videofilter-Presets + benutzerdefinierte Ketten |
| Video + Audio-Merge mit loudnorm-Unterstützung |
| HTTP-Server ohne Abhängigkeiten mit automatischem Browser-Öffnen |
| Terminal- + JSON-Fortschrittsverfolgung pro Worker |
| Status-Serialisierung für lange Renderings |
Benchmarks
Führen Sie Ihre eigenen aus:
node examples/render-test.js --duration=5
node examples/render-test.js --duration=30
node examples/render-test.js --duration=60 --width=1080 --height=1920Tests
npm testEine Smoke-Test-Suite ohne Abhängigkeiten, die Modulexporte, Eingabevalidierung, Dashboard-Pfadsicherheit (Traversal + Null-Byte + Double-Encoding-Vektoren), Checkpoint-Round-Trip und MCP-Server-Stdio-Handshake abdeckt.
MCP-Server
ffmpeg-render-pro enthält einen Model Context Protocol (MCP) Server mit 6 Tools. Funktioniert mit Claude Code, Claude Desktop und jedem MCP-Client.
Zu Claude Code hinzufügen
# 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-mcpZu Claude Desktop hinzufügen
Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:
{
"mcpServers": {
"ffmpeg-render-pro": {
"command": "ffmpeg-render-pro-mcp"
}
}
}Oder, falls Sie es nicht global installieren möchten:
{
"mcpServers": {
"ffmpeg-render-pro": {
"command": "npx",
"args": ["--yes", "--package=ffmpeg-render-pro", "ffmpeg-render-pro-mcp"]
}
}
}MCP-Tools
Tool | Beschreibung |
| Hardware-Encoder testen (NVENC, VideoToolbox, AMF, VA-API, QSV) |
| CPU-Kerne, RAM, empfohlene Worker, ffmpeg-Version anzeigen |
| Paralleles Rendering mit Live-Dashboard |
| Presets anwenden (noir, warm, cool, cinematic, vintage) oder benutzerdefinierte Filter |
| Video + Audio mit Lautstärken-Normalisierung kombinieren |
| Mehrere Videos per Stream-Copy verbinden (sofort, keine erneute Encodierung) |
Claude Code Skill
Dieses Repo enthält einen sofort einsatzbereiten Claude Code Skill. Um ihn zu installieren, kopieren Sie den Skill-Ordner in Ihr Claude-Skills-Verzeichnis:
# 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 /INach der Installation verwendet Claude Code den Skill automatisch, wenn Sie ihn bitten, Video oder Audio mit ffmpeg zu rendern.
Sicherheitshinweise
Der Dashboard-Server bindet nur an
127.0.0.1. Er ist von anderen Maschinen in Ihrem Netzwerk aus nicht erreichbar.Keine Telemetrie, kein Phone-Home, keine CDN-Ladevorgänge. Das Dashboard läuft vollständig von lokalen Dateien unter Verwendung von Systemschriftarten.
Der MCP-Server ist ein lokales Dateisystem-Tool. Wenn er mit einem KI-Agenten verbunden ist, kann er Dateien überall dort rendern, lesen und schreiben, wo der aktuelle Benutzer Zugriff hat. Behandeln Sie ihn wie jedes andere Tool mit Dateisystemzugriff: Führen Sie ihn nur mit einem vertrauenswürdigen Agenten aus und ziehen Sie in Betracht, das Arbeitsverzeichnis des Prozesses einzuschränken, wenn Sie ihn mit nicht vertrauenswürdigen Prompts verwenden.
Stream-Copy-Concat verwendet temporäre Dateien unter
os.tmpdir(). Die von Ihnen übergebenen Ausgabepfade werden weiterhin unverändert geschrieben — stellen Sie sicher, dass sich Ihr Ausgabepfad dort befindet, wo Sie ihn haben möchten.
Changelog
Siehe CHANGELOG.md für Release-Notizen. Aktuell: v1.2.0 — Härtungs-Pass (kritischer Dashboard-Fix, Pfad-Traversal-Abwehr, Leistungsverbesserungen).
Lizenz
MIT
Autor
Maintenance
Related MCP Connectors
MCP server for Google Veo AI video generation
MCP server for Wan AI video generation
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for Luma Dream Machine AI video generation
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 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.825MIT
- FlicenseNot gradedqualityDmaintenanceAn 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.1682
- AlicenseBqualityCmaintenanceMCP server for video enhancement and SAM3 image segmentation, enabling tasks like upscaling videos and segmenting objects in images via natural language.453MIT
- AlicenseNot gradedqualityBmaintenanceMCP server enabling interaction with Twitter, YouTube, Instagram, and video processing via 31 tools, with local Whisper transcription and frame extraction for visual verification.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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