ffmpeg-render-pro
╔══════════════════════════════════════════════════════╗
║ ║
║ ████████ ████████ ██ ██ ██████ ████████ ████ ║
║ ██ ██ ███ ███ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ██ ██ ████████ ████ ║
║ ║
║ ██████ ████████ ██ ██ ██████ ████████ ██████ ║
║ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ██ ██ ██ ██████ ██████ ║
║ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ║
║ ██ ██ ████████ ██ ██ ██████ ████████ ██ ██ ║
║ ║
║ ██████ ██████ ████ ║
║ ██ ██ ██ ██ ██ ██ ║
║ ██████ ██████ ██ ██ ║
║ ██ ██ ██ ██ ██ ║
║ ██ ██ ██ ████ ║
║ ║
║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░ 8 WRKRS ║
║ GPU: AUTO DASHBOARD: LIVE CONCAT: INSTANT ║
╚══════════════════════════════════════════════════════╝ffmpeg-render-pro
실시간 대시보드, GPU 자동 감지, 체크포인트 시스템 및 스트림 복사 방식의 병렬 비디오 렌더링 도구입니다. 가장 강력한 무료 ffmpeg 렌더링 툴킷입니다.
Beeswax Pat이 Claude Code를 사용하여 제작함 · 영구 무료 및 오픈 소스
주요 기능
병렬 렌더링 — N개의 워커 스레드로 프레임을 분할하고 재인코딩 없이 병합
GPU 자동 감지 — 1프레임 검증을 통해 NVENC, VideoToolbox, AMF, VA-API, QSV 탐색
실시간 대시보드 — 워커별 진행 상황, FPS 차트, 예상 완료 시간(ETA)을 브라우저에서 자동 표시
체크포인트 시스템 — 긴 렌더링 작업 시 오버헤드를 93% 절감
색상 보정(Color grading) — 5가지 내장 프리셋(noir, warm, cool, cinematic, vintage) 및 사용자 정의 필터 지원
오디오 병합 — 비디오 재인코딩 없이 음량 정규화와 함께 비디오와 오디오 결합
결정론적 출력 — 시드 기반 난수 생성(RNG)을 통해 병렬 워커가 순차 처리와 동일한 결과를 생성하도록 보장
MCP 서버 — 6가지 도구를 포함한 Model Context Protocol 서버로, 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
});워커 작성하기
워커는 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 진행 상황 추적 |
| 긴 렌더링 작업을 위한 상태 직렬화 |
벤치마크
직접 실행해 보세요:
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모듈 내보내기, 입력 검증, 대시보드 경로 안전성(트래버설 + 널 바이트 + 이중 인코딩 벡터), 체크포인트 왕복, MCP 서버 stdio 핸드셰이크를 다루는 의존성 없는 스모크 테스트 스위트입니다.
MCP 서버
ffmpeg-render-pro는 6가지 도구를 포함한 Model Context Protocol(MCP) 서버를 제공합니다. 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-mcpClaude 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) 또는 사용자 정의 필터 적용 |
| 음량 정규화를 포함한 비디오 및 오디오 결합 |
| 여러 비디오의 스트림 복사 방식 결합 (즉시 처리, 재인코딩 없음) |
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 서버는 로컬 파일 시스템 도구입니다. AI 에이전트에 연결되면 현재 사용자가 접근할 수 있는 모든 곳에서 파일을 렌더링, 읽기, 쓰기 작업을 수행합니다. 다른 파일 시스템 도구와 마찬가지로 신뢰할 수 있는 에이전트와만 실행하고, 신뢰할 수 없는 프롬프트와 함께 사용할 경우 프로세스의 작업 디렉토리를 제한하는 것을 고려하세요.
스트림 복사 방식의 병합은
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