The Splyc clip editor is built so what you see in preview is what you should get in download, Share-to-Splyc, and platform upload—same trim, Shorts layout, captions, credits, text overlays, and timing. Preview is fast and interactive in the browser; export is server-rendered so files are publish-ready.
Caption, credit, watermark, and text-overlay burn-in use Render Engine v2: a CPU compositor draws those layers, then FFmpeg overlays them on the video. Final encodes stay software H.264. A legacy subtitle renderer exists only as an emergency fallback—it is not the default.
Why two render paths?
- Preview runs in the browser: HTML video, CSS, and canvas-style composition for Shorts layouts, captions, and overlays—optimized for scrubbing, undo, and AI suggestions.
- Export / share-ready runs on Splyc’s media workers: layout composite (trim, Shorts stack/center), then Render Engine v2 burns captions, credits, watermarks, and text overlays into a transparent layer over the video. Platform upload encodes stay H.264, with quality fallback when a heavy job fails once.
Same editor metadata (Shorts config, segments, overlays) feeds both. Export does not read a separate hidden preset.
What preview shows today
| Element | Preview behavior |
|---|---|
| Timeline trim / segments | Playback follows kept segments in order |
| Shorts mode (9:16) | Stacked or centered layout with blur bands, zoom, darkness |
| AI captions | Word-level timing, font, weight, color/gradient, shadow, animation modes |
| Text overlays | Position, style, per-overlay color |
| Streamer credits | Platform badge + handle placement (top / center / bottom) |
| Fade transitions | Crossfade between segments (export aims to match) |
| Centered layout keyframes | Scale, blur, darkness tracks |
Captions use Whisper word timestamps when available so karaoke-style highlights stay on the timed branch, not a rough line guess.
What export and Share-to-Splyc apply
Download, Share-to-Splyc, and upload jobs go through server composite when Shorts, captions, overlays, or segments require it:
| Output | What gets burned in |
|---|---|
| Horizontal export | Trim, segments, Skia-burned captions, streamer credit logos + handle, text overlays, watermark |
| Vertical / Shorts | Stacked or centered composite, captions on the full 1080×1920 frame (centered path), credits and watermark layers |
| Public share page | Uses share-ready rendered media when generated—not a raw source URL with CSS simulation only |
| Platform upload | Respects Shorts vs horizontal; encode retries with stepped quality fallback |
Share-to-Splyc creates an immutable link per share action; re-sharing after edits generates a new link rather than silently overwriting the old file.
Parity principles
- One source of truth: editor metadata and timeline segments drive preview and the worker reads the same JSON.
- Subtitle styling: font, weight, color/gradient, stroke, shadow, and animation come from one caption spec. Preview, server burn, and browser export all use that spec—not a separate restyle on export.
- Shorts geometry: centered layout exports apply band blur, darkness, and zoom the same way preview configures them; captions stay on the final 1080×1920 canvas so they stay sharp.
- Credits and logos: platform credit assets ship with the workers so export does not depend on a local web folder at runtime.
- Fail loud: composite steps retry with backoff; persistent failure surfaces in the processing UI instead of silently shipping an unstyled source file.
Processing UI
Long exports show a processing modal (user-dismissible) with staged status—save, composite, encode—so you know the worker is running. Preview stays interactive for edits; export is async.
Known intentional gaps
| Topic | Status |
|---|---|
| Caption motion quality | Preview, server export, and upload composite share the same compositor path. Remaining differences are mostly clip length and encode time. The legacy fallback can still look different if the default engine is unavailable. |
| Background music | Upload + preview supported; full server mix parity is staged in the export pipeline. |
| GPU blur in export | Workers stay on CPU compositing plus H.264 encode—no GPU encode, no GPU blur in the burn path. |
| Very long clips | Preview stays responsive; export time scales with duration and Shorts complexity. |
AI features vs export
| Feature | Credits (when enabled) | Affects export? |
|---|---|---|
| Clip assistant / agent suggestions | Yes | Only if you apply metadata or segment changes |
| AI title / description / tags | Yes | Metadata only—not burned into video |
| Auto captions | Transcription may cost credits | Yes—burned when captions are on |
| Analyze media (extension / manager) | Yes | Indirect—feeds clip creation, not editor pixels |
Editing trim, layout, and captions does not require AI credits; generating AI copy or running analysis does when billing is on.
At a glance: from edit to published file
| Step | Where it runs |
|---|---|
| 1. Edit trim, Shorts, captions, overlays | Browser preview |
| 2. Auto-save / Save draft | API persists editor metadata |
| 3. Download or Share | Worker composite + Render Engine v2 |
| 4. Public viewer / upload | Same share-ready or upload encode chain |
If share-ready generation is required (public clip with Shorts, captions, or overlays), Splyc generates a real MP4 rather than serving the raw source with CSS-only vertical simulation. Exports and share links respect clip ownership—private clips stay owner-only; archived public clips become inaccessible on share routes.