Helios Core 是 Helios 视频引擎的核心 API,包名为 @helios-project/core。它是一个面向视频合成的 headless 逻辑引擎,负责管理时间线状态、提供帧级精度的控制并驱动动画,本身不负责画面渲染,适合与渲染器或 Studio 等外部时间线驱动配合使用。
用途与定位
Helios 类用于创建视频合成实例,管理时长、帧率、分辨率、当前帧、播放状态、输入属性、音频轨道、字幕和标记等状态。通过订阅机制,可在状态变化时按当前帧渲染画面,从而实现数据驱动、可编程的视频合成逻辑。
主要能力
- 合成配置:构造时指定 duration(秒)、fps,可选 width、height(默认 1920×1080)、initialFrame、loop、inputProps、schema、playbackRate、volume、muted、audioTracks、availableAudioTracks、captions、markers、playbackRange 以及自定义 driver。
- 状态读取:getState() 返回只读的 HeliosState,包含尺寸、时长、帧率、当前帧与时间、循环、播放状态、输入属性、播放速率、音量、静音、音频轨道、字幕(含当前激活字幕)、标记和播放区间。
- 播放控制:play、pause、seek(frame)、setPlaybackRate,以及 setPlaybackRange/clearPlaybackRange 限定播放区间。
- 时间线与分辨率:setDuration、setFps(保留当前播放时间)、setLoop、setSize。
- 音频控制:全局音量与静音;通过 DOM 元素上的 data-helios-track-id 分组进行轨道级音量与静音控制;可获取 AudioContext 与轨道对应的 MediaElementAudioSourceNode 用于音频可视化;通过 data-helios-fade-easing 控制淡入淡出曲线。
- 数据输入与校验:setInputProps 更新输入属性并触发订阅者,若构造时提供 schema 则进行校验。
- 字幕:setCaptions 接受 SRT 字符串或 CaptionCue 数组。
- 标记:setMarkers、addMarker、removeMarker、seekToMarker,标记含 id、time(秒)、label、color、metadata。
- 订阅:subscribe 回调会立即以当前状态触发,之后每次状态变化触发,返回取消订阅函数。
- 时间线绑定:bindToDocumentTimeline/unbindFromDocumentTimeline,在外部驱动(如 Renderer 或 Studio)时绑定 document.timeline(渲染器中为 HELIOS_VIRTUAL_TIME)。
- 稳定性注册:registerStabilityCheck 注册异步检查(如字体、模型、数据加载),渲染器通过 waitUntilStable 等待就绪后再截帧。
- 诊断:静态方法 Helios.diagnose() 返回浏览器能力报告,涵盖 WAAPI、WebCodecs、OffscreenCanvas、WebGL/WebGL2、WebAudio、色域、视频与音频编解码器支持、userAgent 等。
动画与编排辅助
- 响应式 signals:signal、computed、effect、ReadonlySignal,Helios 实例将全部状态以只读 signal 暴露(如 currentFrame、isPlaying、inputProps、playbackRate、volume、muted、audioTracks、availableAudioTracks、captions、activeCaptions、markers、currentTime、playbackRange、width、height、loop)。
- 弹簧物理:spring 模拟阻尼谐振子;calculateSpringDuration 计算稳定所需帧数。
- 序列编排:series 按顺序排列多项并支持负 offset 重叠;stagger 按固定间隔错开起始时间;shift 平移序列起始时间。
- 插值:interpolate 将值从一个区间映射到另一个区间,支持 extrapolateRight 等选项。
AI 上下文与 Schema
createSystemPrompt 结合 HELIOS_BASE_PROMPT 与当前合成状态、Schema 定义生成给 AI 代理的系统提示。Schema 用于输入校验及 Studio 的 UI 生成,支持 string、number、image、video、audio、font、model(.glb/.gltf)、json、shader(.glsl)、float32array 等类型化数组,以及 minimum、step、pattern、accept、group 等约束。
使用方式与适用场景
通过 npm 包 @helios-project/core 引入 Helios 及各类工具,在浏览器或渲染环境中创建实例、订阅状态并控制播放。适用于以代码方式构建视频合成、需要帧级精确控制与时间线管理、以及配合外部渲染器逐帧生成视频的场景。RenderSession 提供受控的逐帧迭代(支持 abortSignal 取消),用于自定义渲染或处理循环。
限制
资料未提供该包的收费、价格、平台兼容范围及性能数据,暂未提供;具体渲染输出能力依赖外部 Renderer 或 Studio,Core 本身是 headless 逻辑引擎。