From 61cd3f1da2afd8b59ee1a729c6653513a70e73bf Mon Sep 17 00:00:00 2001 From: ukimsanov Date: Tue, 4 Aug 2026 02:14:59 -0700 Subject: [PATCH] docs: keep the audio on the Huly launch film MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I stripped the audio track with -an when encoding for the web. The source has a real mix at -19.2 dB mean / -3.1 dB peak, and the docs player is click-to-play, so there is no reason for it to be silent. Re-encoded with AAC at 128k; levels match the source exactly. The other published films have no audio track at all to preserve — they were rendered silent at source. --- docs/concepts/frame-adapters.mdx | 20 ++++++++++++++++++++ docs/guides/product-launch-video.mdx | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/docs/concepts/frame-adapters.mdx b/docs/concepts/frame-adapters.mdx index 463d0db9b..9b2c75be5 100644 --- a/docs/concepts/frame-adapters.mdx +++ b/docs/concepts/frame-adapters.mdx @@ -14,6 +14,26 @@ Most composition authors do not implement this interface. HyperFrames already se Use `FrameAdapter` when you are building a custom host around a seekable animation object. +Rendering never plays the animation. It asks for one frame, waits, captures it, +then asks for the next — so the same frame always comes out the same. + +```mermaid +sequenceDiagram + participant R as Renderer + participant A as Frame adapter + participant T as Your timeline + R->>A: getDurationFrames() + A-->>R: 120 + loop every frame, in any order + R->>A: seekFrame(90) + A->>T: jump to 3.0s and settle + T-->>A: state at 3.0s + A-->>R: ready + R->>R: capture the pixels + end + R->>A: destroy() +``` + ## Interface ```ts diff --git a/docs/guides/product-launch-video.mdx b/docs/guides/product-launch-video.mdx index 98890ba69..e234ae466 100644 --- a/docs/guides/product-launch-video.mdx +++ b/docs/guides/product-launch-video.mdx @@ -11,7 +11,7 @@ Give HyperFrames the real URL when the product, website, or brand should appear