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

ConcernSelf-hosted FFmpegRendofy
Compute maintenanceProvision machines, monitor workers, patch runtime dependencies.Submit render jobs to managed rendering infrastructure.
Queue memoryOperate BullMQ or another queue and size worker memory for media peaks.Receive a job acknowledgement, then process the result asynchronously.
ConcurrencySet worker count and resource limits in your own environment.Monthly plans define concurrent render capacity.
CallbacksBuild status polling or callback delivery into your service.Provide a callback URL for completion or failure events.
PricingTrack 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.

Keep input data

Map your existing title, media URLs, and template variables into JSON.

Replace local execution

POST the payload and callback URL to Rendofy instead of launching FFmpeg.

Resume on callback

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.