TiXL 连续录制Continuous Capture完全指南无固定时长的实时渲染导出【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3TiXL 的Render To File渲染到文件功能支持一种区别于常规定长导出的录制方式——Continuous连续录制按下渲染后立即开始捕捉直到你再次按下停止为止没有预设的结束时间。本文基于 TiXL 开源仓库中的 连续录制人工测试集 与 视频导出帮助文档并结合渲染窗口、渲染进程的源码实现完整讲解 Continuous 录制的界面操作、两种时钟模型Realtime / Deterministic、编码器警告与持久化行为让你能够用它录制不限时长的现场演出与即兴 Session。Continuous 是什么一种“开放结尾”的录制模式TiXL 绝大多数导出都针对一个已知起止的固定区间设定 Start / End渲染到进度条走完为止。Continuous则完全不同——它是一个open-ended开放结尾的录制按下Render后立即开始捕捉持续录制直到你再次按下捕捉控制Stop才收尾并保存文件没有固定的结束时间非常适合现场演出、VJ Session、音频反应式即兴创作这类“不知道会演多长”的场景。与之对应录制过程中常规进度条会被替换成一个来回扫动的“仍在进行”指示器sweeping activity indicator直观表示录制没有确定的进度终点。在 RenderSettings.cs 中TimeRanges枚举的第四个成员即为此模式/// summaryOpen-ended recording: capture starts immediately and runs until the user stops it, with no /// predetermined end. See see crefContinuousClock/ for how playback time is driven./summary Continuous,前置条件先准备好输出根据测试集 frontmatter 的prerequisites使用 Continuous 录制前需要满足项目中打开了一个具有 Texture2D 输出的算子并且该输出已在Output Window输出窗口中选中或固定pin这样 “Render To File” 才有内容可渲染理想情况下画面带有可见的运动这样录制出来的帧之间容易区分便于验证效果。第一步在 Source 面板中启用 Continuous第四种 Range 模式操作打开Render To File窗口输出窗口工具栏的滑块图标或通过主菜单进入在左侧边栏选择Source区块观察Range范围分段按钮。预期结果与 测试步骤 1 一致Range控件提供四种选项Custom自定义/ Loop循环/ Soundtrack配乐/ Continuous连续选择Continuous后Scale / Start / End三行被隐藏取而代之的是Clock时钟控件Realtime / Deterministic二选一Frame Rate帧率控件。在 RenderWindow.cs 中isContinuous为真时即切换到DrawContinuousOptions(s)绘制 Continuous 专属选项窗口底部的一行摘要也会变为类似Continuous · 1920×1080 · H.264 · realtime · 60 fps参见 RenderWindow.cs 的BuildSummaryLine实现——连续模式没有时长与体积预估因为根本没有固定终点。两种时钟模型Realtime 与 DeterministicContinuous 的核心区别在于用什么驱动播放时间。你在Clock中选择其一维度Realtime实时Deterministic确定性捕捉内容现场输出所见即所得OBS/VJ 风格按目标 FPS 推进时间轴播放控制权完全交给你播放保持实时、可交互编辑器接管逐帧推进帧完整性受编码速度影响可能丢帧/重复帧逐帧完美frame-perfect即使编码慢于实时音频暂不支持video only开启 Export Audio 可包含配乐分辨率使用输出的原始分辨率受 Resolution Scale 控制源码枚举 ContinuousCaptureClock 对两种时钟给出了准确定义Realtime“Leave playback under live/user control and grab whatever the output shows each frame (OBS/VJ-style). Best for live performance and audio-reactive/interactive content.”保持播放由用户实时控制逐帧抓取输出画面最适合现场演出与音频反应式/交互内容。Deterministic“Step playback forward at the target FPS like a normal render, but without a fixed end — frame-perfect even when encoding is slower than realtime.”像普通渲染一样按目标 FPS 推进时间但没有固定终点——即使编码慢于实时也能保证帧完整。在界面上Clock 下方会显示一行随选项变化的提示见 测试步骤 2Realtime提到抓取实时输出且“仅视频 / 暂无音频”Deterministic提到按目标 FPS 推进、帧完美但不实时。对应 UI 文案见 RenderWindow.csGrabs the live output as you perform; press capture again to stop. (Video only — no audio yet.) Advances time at the target FPS until you stop. Frame-perfect, but not realtime.Frame Rate 与 Resolution Scale 的实时行为Frame Rate帧率当前仅实现Fixed FPS固定帧率。测试集明确要求该控件处于禁用状态并显示 “Fixed FPS”提示“可变帧率VFR即将推出”。源码中 ContinuousFrameRateMode 枚举确实预留了Variable成员但注释标注为“Reserved — not yet implemented”保留尚未实现UI 层通过ImGui.BeginDisabled()将其置灰RenderWindow.cs。Resolution Scale分辨率缩放当Clock Realtime时该行被禁用并提示“Realtime capture uses the native output resolution.”实时捕捉使用输出的原始分辨率。原因见 RenderProcess.cs实时捕捉直接抓取现场纹理因此强制ResolutionFactor 1f不可缩放而 Deterministic 模式下 Resolution Scale 正常可用2 倍即可从 1080p 产出 4K 母版。慢速编码器会警告但录制仍然允许操作保持 Continuous 选中进入Format Quality区块将Codec切换为较慢的编码器如VP9或ProRes再换回H264在显卡支持硬件编码的机器上。预期结果测试步骤 3对于无法使用显卡加速的编码器编码器指示器下方出现警告行大意“No hardware encoder — continuous capture may drop or duplicate frames.”无硬件编码器——连续捕捉可能丢帧或重复帧Render 按钮保持可用——它只警告、不阻拦在可用显卡加速的机器上选择H.264警告消失。TiXL 的编码器生态是分层级的详见 ExportVideos.md 的编码器表格H.264 / HEVC使用显卡硬件编码器NVIDIA NVENC、Intel Quick Sync、AMD AMF速度快无硬件时回退到慢速软件编码ProRes / VP9 / AV1 / FFV1依赖软件编码明显更慢。UI 逻辑位于 RenderWindow.cs当TimeRange Continuous且VideoEncoderAvailabilityCache.Get(codec).Kind ! Hardware时绘制警告。这也解释了为什么实时捕捉强烈建议搭配硬件编码器——帮助文档中专门有一条提示“Hardware encoding (NVENC / Quick Sync / AMF) is the fast path and matters most for realtime Continuous capture. NVENC needs an NVIDIA driver version 570 or newer.”NVENC 需要 NVIDIA 驱动 570 或更新版本。实战一Realtime 捕捉——抓取现场输出直到停止操作测试步骤 4设置Range Continuous、Clock Realtime、Codec H.264开始播放让输出处于动画中按下Render或使用渲染动画快捷键让输出持续播放几秒再次按下捕捉控制停止。预期结果录制立即开始底部 footer 用扫动活动段取代进度条并显示“Capturing… N frames / ”已捕捉帧数 / 已用时长数字随时间增长输出窗口顶部边缘也出现一条细的扫动指示条OutputWindow.cs 中以约 30% 宽的扫动段绘制播放保持实时、响应正常——它不会被强制或拖动test 原文it is not forced or scrubbed再次按下捕捉控制后停止并保存文件状态显示“Captured N frames (…) to …”回放视频可见刚才屏幕上的实时动态此模式无音频。底层原理实时捕捉的核心实现是 WriteRealtimeContinuousFrames。它采用**墙钟累加器wall-clock accumulator**控制节奏记录首次写入帧时的Playback.RunTimeInSecs作为锚点因此初始化延迟不计入录制时长每帧根据elapsed * fps - FrameIndex计算应写入的帧数编辑器刷新率高于目标 FPS 时直接跳过本帧抓取若遇到长时间停顿弹窗、编辑器暂停最多补写 4 帧后重新同步墙钟基线避免用重复帧灌满文件maxCatchUpFrames 4播放时间完全不被接管——这正是实时模式下停止录制时不会把用户的PlaybackSpeed拉回 0 的原因RenderProcess.cs。实战二Deterministic 捕捉——逐帧推进直到停止操作测试步骤 5将Clock切换为Deterministic按下Render短暂运行后停止。预期结果出现同样的活动指示器与 “Capturing…” 读数时间按目标帧率稳步推进输出逐帧前进即使无法实时跟上停止后保存的视频可正常回放开启 Export Audio 时包含配乐。与 Realtime 不同Deterministic 走的是普通渲染的时间驱动路径编辑器逐帧驱动时间轴结果完全可复现exactly repeatable。正如 ExportVideos.md 的技术背景所述确定性导出不是实时过程遇到异步算子如从网络加载图片、seek 视频时 TiXL 会等待其完成再写帧以速度换取正确性。停止、保存与取消的差异连续录制结束后有两种收尾方式语义不同StopContinuous正常的“第二次按下”完成混流、保留文件并像普通渲染一样自动递增版本号RenderProcess.csCancel视为放弃不保留文件。快捷键行为见 RenderProcess.cs连续录制进行中再次触发渲染动画快捷键会调用StopContinuous()而非Cancel()——即第二次按下就是正常的“停止并保存”。此外连续录制出错时如输出文件被其他进程占用会记录“Continuous capture stopped after an error.”并清理会话RenderProcess.cs。Continuous 选项在保存与重载后保持操作测试步骤 6将Range Continuous、Clock Deterministic保存项目关闭并重新打开或重载再打开 Render To File 窗口的 Source 区块。预期结果Range 仍为 ContinuousClock 仍为 Deterministic。原理在于渲染设置是按合成per-composition持久化的RenderSettings.Current从当前聚焦合成对象的SymbolUi.RenderSettings读取RenderSettings.cs并通过WriteToJson序列化为.t3ui文件中的RenderExport属性RenderSettings.cs。ContinuousClock与ContinuousFrameRate均为该结构的字段并被CopyFrom完整拷贝因此选择在保存/重载后自然保留。当前限制与 RoadmapRealtime 模式暂无音频界面中 “Export Audio” 复选框在实时连续录制下被禁用RenderWindow.cs渲染进程也会强制ExportAudio false仅支持 Fixed FPS可变帧率VFR在源码中已预留Variable枚举但未实现当前导出为 8-bitHDR 输出如 EXR 图像序列与可变帧率连续捕捉在 Roadmap 中列出实时捕捉依赖硬件编码器保证帧节奏软件编码时可能出现丢帧/重复帧界面会警告但允许继续。相关文档与源码索引本文所依据的测试集.tests-manual/continuous-capture.md测试集格式规范frontmatter、Step 结构、标签约定.tests-manual/README.md用户帮助文档编码器表格、Continuous Capture 章节、技术背景.help/docs/using/ExportVideos.md渲染设置与枚举定义Editor/Gui/Windows/RenderExport/RenderSettings.cs渲染窗口 UIRange/Clock 控件、警告、footerEditor/Gui/Windows/RenderExport/RenderWindow.cs渲染进程实时墙钟节奏、Stop/Cancel、会话管理Editor/Gui/Windows/RenderExport/RenderProcess.cs输出窗口扫动指示条Editor/Gui/Windows/Output/OutputWindow.cs要点回顾Continuous 是 TiXL 为“无固定时长”场景设计的第四种 Range 模式Realtime 模式抓取现场输出、保留播放控制权、仅视频Deterministic 模式逐帧推进、帧完美且可录音频。录制过程中进度条被扫动活动指示器取代第二次按下即停止保存且所有 Continuous 选项会随项目持久化。对现场/VJ 使用请优先选择支持硬件编码的 H.264/HEVC以获得平滑的实时捕捉。【免费下载链接】t3TiXL is an open source software to create realtime motion graphics.项目地址: https://gitcode.com/GitHub_Trending/t3/t3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
