ffmpeg-render-pro
╔══════════════════════════════════════════════════════╗
║ ║
║ ████████ ████████ ██ ██ ██████ ████████ ████ ║
║ ██ ██ ███ ███ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ██ ██ ████████ ████ ║
║ ║
║ ██████ ████████ ██ ██ ██████ ████████ ██████ ║
║ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██ ██ ██████ ██████ ║
║ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ║
║ ██ ██ ████████ ██ ██ ██████ ████████ ██ ██ ║
║ ║
║ ██████ ██████ ████ ║
║ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ████ ║
║ ║
║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░ 8 WRKRS ║
║ GPU: AUTO DASHBOARD: LIVE CONCAT: INSTANT ║
╚══════════════════════════════════════════════════════╝ffmpeg-render-pro
Параллельный рендеринг видео с живой панелью мониторинга, автоопределением 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 --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)
Основная точка входа. Разделяет рендеринг между рабочими потоками, отображает живую панель мониторинга и создает итоговый 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 для получения полного рабочего примера.
Модули
Модуль | Назначение |
| Пул потоков из N воркеров с отслеживанием прогресса |
| Передача необработанных кадров в ffmpeg с контролем нагрузки |
| Кроссплатформенное обнаружение и проверка аппаратных кодировщиков |
| Автоматическая настройка воркеров на основе разрешения, RAM, CPU |
| Мгновенное объединение сегментов через копирование потока |
| Пресеты видеофильтров ffmpeg + пользовательские цепочки |
| Объединение видео и аудио с поддержкой loudnorm |
| HTTP-сервер без зависимостей с автооткрытием в браузере |
| Отслеживание прогресса в терминале и JSON для каждого воркера |
| Сериализация состояния для длинных рендеров |
Тесты производительности (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
Инструмент | Описание |
| Проверка аппаратных кодировщиков (NVENC, VideoToolbox, AMF, VA-API, QSV) |
| Показать ядра CPU, RAM, рекомендуемое количество воркеров, версию ffmpeg |
| Параллельный рендеринг с живой панелью мониторинга |
| Применение пресетов (noir, warm, cool, cinematic, vintage) или пользовательских фильтров |
| Объединение видео и аудио с нормализацией громкости |
| Мгновенное объединение нескольких видео через копирование потока (без перекодирования) |
Навык (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
Автор
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