
Ffmpeg Render Pro
io.github.beeswaxpat由 GitHub 账号 beeswaxpat 发布v1.5.2更新于 Oct 24, 2026
Parallel video rendering tools: detect GPU encoders, render, color grade, merge audio, concat.
发布方自己的服务:Brontide agent arena
概览
让助手通过 worker 脚本并行渲染视频,并检测 GPU 编码器、调色、合并音频和拼接片段。
- 可以做什么
- 通过 stdio 提供七个工具:get_worker_template 返回 worker 契约和起始源码,render_video 依据 worker 脚本并行渲染并支持进度通知与取消,detect_gpu 探测硬件编码器,system_info 报告核心数与内存,color_grade、merge_audio 和 concat_videos 负责后期处理。渲染会把帧范围拆分到多个工作线程,各自编码一个 MP4 分段,再用流复制拼接。工具返回带输出模式的 structuredContent。
- 适用场景
- 适合助手需要在本地生成或后期处理视频文件的场景:程序化或代码驱动的渲染、GPU 编码器检测、调色、添加配乐,或拼接同编码片段。也适用于无界面的代理流程,由助手编写或复用 worker 脚本后再渲染。
- 运行要求
- 以 stdio 本地运行,可通过 npx(包名 ffmpeg-render-pro)或全局安装启动;需要 Node.js 18 或更高版本,以及位于 PATH 中的 ffmpeg。可选环境变量 FFMPEG_RENDER_PRO_FFMPEG、FFMPEG_RENDER_PRO_FFPROBE 和 FFMPEG_RENDER_PRO_CACHE_DIR 用于指定非 PATH 的二进制文件和 GPU 探测缓存。未声明账号、密钥或请求头。
安装
在 SourceWeft 中
- 打开 控制台中的 Ffmpeg Render Pro,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
ffmpeg-render-pro
[npm version] [License: MIT] [Platform: Cross-platform] [Node.js] [MCP Server]
Render video from code, in parallel. You write one function that paints a frame; ffmpeg-render-pro splits the frame range across worker threads, encodes one MP4 segment per worker, joins the segments with stream copy (no re-encode), and shows a live dashboard in your browser while it runs. It also detects GPU encoders, grades color, merges audio, and ships as a CLI, a Node library, an MCP server for AI agents, and a Claude Code skill.
Built by Beeswax Pat. Free and open source.
Start here
Three commands. You need Node.js 18 or newer and ffmpeg on your PATH.
Open my-worker.js. The only function you need to change is renderFrame(frameNum, buffer): fill the buffer with your pixels (B, G, R, A, one row after another) and everything else is already done. Derive any randomness from the seed it receives and parallel output stays identical to a sequential render.
Install it globally if you would rather not type npx:
Using an ffmpeg that is not on PATH
The variables are read at call time, so a long-running process such as the MCP server picks up changes without a restart.
CLI
Render and benchmark flags: --width=1920 --height=1080 (must be even), --fps=60, --duration=60 (fractions allowed), --output=out.mp4, --workers=N, --max-workers=8, --seed=42, --title="...", --crf=20 (0-51, lower is higher quality), --encoder-preset=fast (any x264 preset). Dashboard flags: --no-dashboard, --no-open, --port=8080, --linger-ms=30000 (0 exits as soon as the render finishes). Run ffmpeg-render-pro with no arguments for the full list.
An unknown flag warns and continues. A value that does not parse, such as --fps=abc, exits 1 instead of rendering at the default.
Installed binaries: ffmpeg-render-pro (this CLI) and ffmpeg-render-pro-mcp (the MCP server). The older ffmpeg-render-mcp name still works so existing MCP configs never break.
How a render works
renderParallelchecks ffmpeg, validates the resolution, and picks a worker count from your CPU cores and RAM (never more workers than frames).- It starts the dashboard server on
127.0.0.1and opens your browser. - Each worker thread runs your script with a frame range in
workerData, pipes raw BGRA frames into its own ffmpeg process, and writes one MP4 segment. - Segments are joined with the concat demuxer and
-c copy, which takes seconds regardless of length. - Temp files are removed. A failed worker's range is retried once before the render fails.
Your worker
A worker is a Node script that runs in a worker_threads thread. init gives you one where only renderFrame needs editing; examples/basic-worker.js in the installed package is a larger reference with a particle system and seeded RNG.
Fields the renderer injects through workerData:
Messages the worker posts with parentPort.postMessage:
Every worker must encode with the same codec, resolution, framerate, and pixel format, because the segments are stream-copied together.
Library
renderParallel(options)
Abort rejects with an error whose name is 'AbortError'. In library use set dashboardLingerMs: 0 so the call returns without holding the process open. Set FFMPEG_RENDER_PRO_DEBUG=1 for full stack traces from the CLI.
Post-processing
colorGrade accepts any encoder name in codec; encoders that need their own filter (VA-API) get it merged into the grade chain automatically.
Checkpoints for long renders
For multi-hour renders, snapshot your simulation state every N frames once, so each worker replays only the frames since the nearest snapshot instead of starting from frame 0.
systems is an object of named modules with getState(), setState(), and update(dt). A checkpoint labeled frame F holds exactly F updates. _frame and _timestamp are reserved keys.
MCP server (for AI agents)
Seven tools over stdio, usable from Claude Code, Claude Desktop, or any MCP client.
Claude Desktop (claude_desktop_config.json):
The agent recipe: call get_worker_template, copy starterSource to a file and replace renderFrame, then call render_video with that file as worker_script (dashboard: false, auto_open: false for headless runs). To render without writing code, pass the returned starterPath or templatePath straight to render_video. Post-process with color_grade, merge_audio, and concat_videos.
Every tool declares an outputSchema and returns structuredContent, so parse JSON instead of text. Writers overwrite output_path. render_video defaults to 30 fps (the CLI defaults to 60), emits notifications/progress every 2 seconds when the client sends a progressToken (turn on resetTimeoutOnProgress for long renders), and stops all workers on client cancellation. stdout carries only JSON-RPC frames. Missing ffmpeg returns an error that names the install page and the env var.
The tarball also ships llms.txt at the package root and a Claude Code skill:
NVENC quick reference
The renderer detects NVENC by itself. For one-off encodes outside it:
h264_nvenc rejects very narrow frames (145px minimum on a Turing card) by writing a zero-byte file and exiting, so keep probes at 256x256. Both commands come from the ffmpeg Render Cookbook ($12): 29 recipes, each run on ffmpeg 8.0.1 before publication.
Security notes
- Releases are published to npm by GitHub Actions through npm trusted publishing (OIDC). There is no publish token, and every version from 1.5.2 on carries a provenance attestation that ties the tarball on npm to the exact commit and workflow run that built it (see the Provenance panel on the npm page).
- The dashboard binds to
127.0.0.1only and loads nothing from the network. No telemetry. render_videoandrenderParallelexecute the worker script you name with the privileges of the current user. Only run workers you wrote or trust.- The MCP server reads and writes files anywhere the current user can. Run it with a trusted agent, and consider restricting its working directory when prompts are untrusted.
- A custom
filterstring is file access: ffmpeg filters such asmovie=andsubtitles=read local files. Treat filter input the way you treat a file path. - Concat list files are written under
os.tmpdir(); output paths are written exactly where you point them.
Tests
npm test runs 12 zero-dependency suites (255 checks): unit, smoke, a real MCP session over stdio with a byte audit of stdout, and end-to-end renders verified with ffprobe and framemd5. It skips the render suites cleanly on machines without ffmpeg. CI runs the same on Ubuntu, Windows, and macOS against Node 18, 20, 22, and 24.
Changelog and license
See CHANGELOG.md. MIT.
来源:README.md,提交 6f75cff
工具
0版本历史
1- v1.5.2最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Brontide 集成
Brontide agent arena
live.brontide官方发布者
一个免费的公开机甲对战竞技场,助手可通过 MCP 驾驶 60 吨机甲,与官方机器人、其他智能体或真人一对一决斗,并有公开排行榜。

Morphogen
由 GitHub 账号 beeswaxpat 发布
Morphogen II 的 MCP 服务器:一个带留言簿的反应扩散场,可生成场、读取公开标记与问题,并留下自己的条目。

Chronoverify
由 GitHub 账号 beeswaxpat 发布
通过 C2PA、EXIF/XMP 与像素取证核查照片的拍摄时间与来源,返回带置信度的判定结果。