diff --git a/remotion/render-audiogram.mjs b/remotion/render-audiogram.mjs index 8e6094fa..b62c4ab5 100644 --- a/remotion/render-audiogram.mjs +++ b/remotion/render-audiogram.mjs @@ -22,6 +22,10 @@ */ import { renderMedia, selectComposition } from "@remotion/renderer"; + +// Same reason as remotion/render.mjs: the 30s default is measured against +// the font delayRender competing with the whole bundle. +const DELAY_RENDER_TIMEOUT_MS = 120_000; import { getCachedBundle } from "./bundle-cache.mjs"; import path from "path"; import fs from "fs"; @@ -80,6 +84,7 @@ async function main() { onBundle: () => console.log(" Remotion: bundling (first run, or src/config changed)..."), }); const composition = await selectComposition({ + timeoutInMilliseconds: DELAY_RENDER_TIMEOUT_MS, serveUrl: bundleLocation, id: "Audiogram", inputProps, @@ -95,6 +100,7 @@ async function main() { ); await renderMedia({ + timeoutInMilliseconds: DELAY_RENDER_TIMEOUT_MS, composition: { ...composition, durationInFrames, fps, width, height }, serveUrl: bundleLocation, codec: "h264", diff --git a/remotion/render.mjs b/remotion/render.mjs index 5b2ce349..18578e12 100644 --- a/remotion/render.mjs +++ b/remotion/render.mjs @@ -52,6 +52,11 @@ function clampCaptionFontScale(raw) { } +// Remotion's 30s default is measured against the font delayRender in Root.tsx, +// which competes with evaluating the whole bundle. That bundle has three +// compositions now, and the slowest CI runner does not finish inside 30s. +const DELAY_RENDER_TIMEOUT_MS = 120_000; + async function main() { const opts = parseArgs(); @@ -197,6 +202,7 @@ async function main() { serveUrl: bundleLocation, id: "CaptionedClip", inputProps, + timeoutInMilliseconds: DELAY_RENDER_TIMEOUT_MS, }); const cpus = os.cpus().length; @@ -227,6 +233,7 @@ async function main() { outputLocation: captionOverlay, inputProps, concurrency, + timeoutInMilliseconds: DELAY_RENDER_TIMEOUT_MS, onProgress: ({ progress }) => { const pct = Math.round(progress * 100); if (pct > lastPct + 9) {