Migration guide
Move render operations out of your worker pool.
Keep your application focused on composition data. Rendofy accepts a JSON render request, queues work asynchronously, and delivers the result through your callback URL.
What changes when you migrate
| Concern | Self-hosted FFmpeg | Rendofy |
|---|---|---|
| Compute maintenance | Provision machines, monitor workers, patch runtime dependencies. | Submit render jobs to managed rendering infrastructure. |
| Queue memory | Operate BullMQ or another queue and size worker memory for media peaks. | Receive a job acknowledgement, then process the result asynchronously. |
| Concurrency | Set worker count and resource limits in your own environment. | Monthly plans define concurrent render capacity. |
| Callbacks | Build status polling or callback delivery into your service. | Provide a callback URL for completion or failure events. |
| Pricing | Track infrastructure, storage, and operations costs. | Choose a flat monthly concurrency tier. See current plan details on pricing page. |
Map the composition, not the filter string
FFmpeg filter graphs are general-purpose programs, so there is no safe one-to-one automatic conversion. Translate the composition intent: ordered media inputs become layers, text overlays become text layers or template variables, and repeated typography becomes a reusable template. Validate timing, fonts, codecs, and supported layer types with a small sample before moving production traffic.
Conceptual JSON shape
{
"api_key": "$RENDOFY_API_KEY",
"callback_url": "https://example.com/hooks/rendofy",
"payload": {
"layers": [
{ "type": "video", "src": "https://example.com/source.mp4" },
{ "type": "text", "text": "{{title}}" }
],
"metadata": { "source": "migration-pilot" }
}
}
Illustrative structure only. Confirm available fields and layer options in the current API reference before using it.
A five-minute n8n pilot
Duplicate a non-production workflow. Keep the existing composition data, replace the command that starts FFmpeg with an HTTP Request node, and add a Webhook node for the completion callback. Test one short sample first, then compare output and operational behavior before changing the production route.
Map your existing title, media URLs, and template variables into JSON.
POST the payload and callback URL to Rendofy instead of launching FFmpeg.
Use the returned MP4 URL in the next node after completion.
HTTP Request node
Method: POST
URL: https://api.rendofy.com/webhook/render-intake
Content-Type: application/json
Body: { "api_key": "$RENDOFY_API_KEY", "callback_url": "$CALLBACK_URL", "payload": { "quote": "Pilot render", "author": "Rendofy" } }
This pilot is a workflow outline, not an automatic FFmpeg filtergraph converter. Confirm endpoint payload details in the API reference.
Start with a contained test
Use a representative short composition, verify callback handling, and only then route more jobs through the managed path.