调试超时
以下错误:
bashA delayRender() was called but not cleared after 28000ms. See https://remotion.dev/docs/timeout for help. The delayRender was called
bashA delayRender() was called but not cleared after 28000ms. See https://remotion.dev/docs/timeout for help. The delayRender was called
通常发生在创建了 delayRender() 句柄后未清除的情况下。Remotion 将等待进行截图,但默认情况下在 30 秒后会中止以避免永远挂起。
可能的原因
未调用 continueRender()
您的代码可能存在问题,即调用了 delayRender() 但从未清除它。这将导致 Remotion 在开始渲染之前永远等待,并导致超时消息。
解决方法:检查您的代码,并确保调用了 continueRender()。
没有网络连接或防火墙问题
如果您依赖网络资产(如字体、图像、视频或音频),但没有网络连接或请求被防火墙阻止。特别要注意在云中进行渲染时,例如 Amazon VPC 可能会阻止出站网络请求并导致超时。
解决方法:确保您需要的所有网络资源都可以访问。
内存压力
当并发设置 过高时,Chrome 可能决定不加载某些 <Video />,这可能导致超时错误。
我们认为这是 Remotion 中的一个 bug,并计划在未来修复它。
解决方法:将 concurrency 降低到一个 Chrome 可以加载所有视频的水平。
旧版本的 Remotion
旧版本的 Remotion 存在可能导致超时的 bug。 特别是 1.x 版本可能在导入大型资产时超时
解决方法:使用 npm run upgrade 升级到最新的 Remotion 版本。
需要下载视频
如果使用 <OffthreadVideo> 渲染视频,则需要在视频可以被读取之前下载视频。如果视频很大且下载时间超过超时时间,则会触发超时。在这种情况下,您应该增加超时时间。
不够有帮助?
提交问题 并尝试以一种我们可以重现的方式描述您的问题。我们会尽力帮助您。
"使用 src http://localhost:3000/proxy 加载 <Img>"
请查看这里以获取有关此特定 超时 消息的信息。
增加超时时间v2.6.3
有时,您无法避免一个帧渲染时间超过 30 秒。例如:
- 昂贵的 WebGL 场景
- 数据的昂贵预处理
- 需要等待视频下载完成
您可以增加默认超时时间:
- 在 Remotion Studio 渲染对话框中的 "高级" 选项下
- 使用
--timeoutCLI 标志 - 在
renderStill()、renderFrames()、getCompositions()、renderMedia()、renderMediaOnLambda()、renderStillOnLambda()、renderStillOnCloudRun()和renderMediaOnCloudRun()中使用timeoutInMilliseconds选项 - 在配置文件中使用
Config.setDelayRenderTimeoutInMilliseconds()选项,如果您在 CLI 上渲染 - 对于使用
timeoutInMilliseconds选项的单独的delayRender()调用v4.0.140 <Img>、<Audio>、<Video>和<IFrame>标签支持delayRenderTimeoutInMilliseconds属性,以控制这些组件进行的delayRender()调用的timeoutInMilliseconds值v4.0.140
添加标签以帮助调试v2.6.13
如果遇到超时问题而不知道其来源,您可以将标签作为参数添加:
tsxdelayRender ("Fetching data from API...");
tsxdelayRender ("Fetching data from API...");
如果调用超时,错误消息中将引用该标签:
Uncaught Error: A delayRender() "Fetching data from API..." was called but not cleared after 28000ms. See https://remotion.dev/docs/timeout for help. The delayRender was called
Uncaught Error: A delayRender() "Fetching data from API..." was called but not cleared after 28000ms. See https://remotion.dev/docs/timeout for help. The delayRender was called