Releases: Chronyyx/Clipture
Releases · Chronyyx/Clipture
Release list
Clipture 1.6.1: Version Label & Update Status
[1.6.1] - 2026-10-01
Version Label & Update Status
- Version in the sidebar: The running version is shown at the bottom of the sidebar. It is taken from
package.jsonat build time, so it always matches the executable the interface ships in, and it stays pinned while a long friends list scrolls. - "Updates off" for local builds: Builds that cannot update themselves (local
build/dist:winoutput, development and test builds) now show "Updates off" in the title bar, with the reason on hover, instead of an update check that can never find anything.UpdateStategains an optionaldisabledflag; release builds are unchanged. - First runtime update: 1.6.0 installs receive this release through the signed component runtime path (ADR 0009) instead of the installer.
Clipture 1.6.0: Friend Sharing, Smaller Clips & Signed Runtime Updates
[1.6.0] - 2026-10-01
Friend Sharing, Smaller Clips & Signed Runtime Updates
Friend-to-friend clip sharing (ADR 0011)
- Peer-to-peer sharing over iroh: New opt-in Friends tab. Friends are added by invite link (
clipture.app/invite) and clips go directly between the two PCs over QUIC, with no Clipture server in the path. LAN peers are found over mDNS and connect directly; a relay is used only when no direct path exists, and the UI says when it is. - Click-to-play streaming: A shared clip streams only after Play is pressed. Up to four fetch runways follow the playhead, fill the clip in playback order from its sample tables, and skip zero-filled ranges on the wire (sparse range replies). The stream is cached in a sparse temporary file, so seeking back is instant and every audio track can be mixed once the clip has arrived.
- Stream-ready copies: Sharing makes a lossless, verified FFmpeg remux (
+faststart, playback-ordered samples, no padding) under<saveFolder>\.clipture-sharing, capped at 10 GB / 30 days and removed with the share. Originals are never modified. A 719 MB clip over a 56 Mbit/s upload now shows its first frame in 1.6 s instead of 8.9 s. - Resumable "Add to library": Downloads run at the full speed of both connections, resume from a verified partial file after a drop (backoff of 1–30 s), show speed and relay state, and can be cancelled.
- All audio tracks: Streams and library copies keep every track; streamed playback mixes the selected tracks through FFmpeg.
Recording and saving
- Capped-quality rate control (ADR 0012): NVENC now encodes VBR at CQ 21, using the configured bitrate as a one-second VBV ceiling, instead of constant bitrate. Measured on 1440p120 footage: 24–32% of the previous size at VMAF within 0.15, and under 1% more encoder time. Constant bitrate remains the automatic fallback for GPUs or drivers that reject it.
- No more padded clips: Save trims unused arena space off the end of an in-place clip and releases free slots inside it as sparse ranges, instead of writing them out as zeros. Up to half of a clip could previously be padding.
- Exact frame rate: A save now waits (bounded to 250 ms) for frames still inside the encoder, so clips end on real frames rather than holding the last one. Clips report exactly their capture rate (60, not 59.97).
- 120 FPS capture: Added as an experimental recording target.
- Overlapping in-place saves: New default
saveInPlaceOverlap. Footage retained after a save is copied back into the live arena in the background at low I/O priority, so consecutive saves can overlap like the legacy RAM path. - Fix clips: Settings can now losslessly repair clips with a poor sample layout or zero padding, after verification and without touching clips that do not need it.
- Replay-buffer cleanup: Abandoned
.clipture-replaybuffers left by crashes or forced exits are removed on start. - Default app tracks: The default browser and Discord are added once as separate audio tracks and never re-added after removal.
- Fresh NV12 conversion (ADR 0010): Opt-in experiment that converts the selected frame straight into the encoder's input surface.
Updates and reliability
- Signed component runtimes (ADR 0009): Updates stage a Minisign-signed runtime from the GitHub release, reusing unchanged files and 1 MiB blocks, and activate on the next launch or on Apply now. No installer or elevation is needed.
- Engine lifetime: The capture engine is tied to the controller with a kill-on-close job object, so it can no longer be orphaned and block a reinstall.
- UI stability: Media replies over the UI pipe's 4 MiB limit fail that request instead of closing the window, and closing the window is always delivered.
- Crash log: Panics and unexpected UI-worker exits are written to
crash.login the data folder.
Interface
- Settings redesign: Recording, Storage, Audio and Notification sections, a hotkey field, and wording that says what each setting does ("Maximum bitrate").
- Library: Loading skeletons, lazy thumbnail loading, and a recorder status panel.
- Themes: New Maid café and Halloween themes.
Build and release
- Pinned FFmpeg: FFmpeg 9.0.2 is downloaded once and verified against pinned SHA-256 hashes.
- Optional Authenticode signing: Configurable through
WINDOWS_SIGN_COMMAND. - Hardened workflows: Actions are pinned to commit SHAs and maintained by Dependabot.
- clipture.app: The site is rendered and deployed with each release.
Clipture 1.5.4: Audio Mixer Quantization & 100 Hz Buzz Elimination
[1.5.4] - 2026-09-11
Audio Mixer Quantization & 100 Hz Buzz Elimination
- Nearest-Sample Grid Quantization: Replaced truncating integer division in
AudioReplayCoordinatorwith a dedicated nearest-sample rounding implementation (PcmBlockMixer.hpp). Truncation toward zero previously placed adjacent packets (-479.995 frames and +0.005 frames) into the same output frame index zero, causing an artifactual doubled sample every 480 frames and pumping the peak limiter at the 100 Hz mix-block cadence. - Consistent Half-Frame Tie Breaking: Standardized boundary tie breaking toward the later frame across negative and positive fractional offsets, ensuring continuous sample flow across 8 kHz, 44.1 kHz, 48 kHz, and 96 kHz streams even after sub-millisecond clock adjustments.
- Audio Integration & Phase Sweep Test Coverage: Added
clipture_pcm_block_mixerunit tests verifying boundary phase continuity across sample sweeps and multi-track summation, alongsidetestAudioMixerClockPhaseDoesNotChangeAacvalidating that fractional clock phase corrections do not alter AAC stream encodings.
Clipture 1.5.3: WASAPI Loopback Pacing & Audio Sync Stabilization
[1.5.3] - 2026-09-10
WASAPI Loopback Pacing & Audio Sync Stabilization
- Loopback Silence Scheduling & Grace Period: Refactored system and process-level WASAPI loopback capture fallback (
LoopbackSilencePolicy.hpp). An empty poll (GetNextPacketSize() == 0) is no longer prematurely treated as silence; synthetic silence packets are only fabricated after a bounded 200 ms delivery grace period (two 100 ms WASAPI client periods). - Audio Timestamp Alignment & Drift Prevention: Prevents premature silence frames from shifting incoming real audio packets forward in the forward-only timestamp aligner, eliminating cumulative audio desync, artificial gaps, stutter, and intermittent buzzing artifacts on resume.
- Dedicated Loopback Silence Test Suite: Integrated
clipture_loopback_silenceregression suite into CTest covering continuous streams with empty polls, 5–100 ms variable packets, jittered/batched delivery, idle-source advancement, and audio resumption.
Clipture 1.5.2: In-Place Replay Saving & Zero-Copy MP4 Persistence
[1.5.2] - 2026-09-10
In-Place Replay Saving & Zero-Copy MP4 Persistence
- In-Place Replay Persistence & Zero-Copy Finalization: Replaces disk/memory duplicate muxing with a dedicated packet arena (
replay/InPlacePacketArchive). Video and normalized AAC audio samples are written directly into private.clipture-replay/*.recordingarenas inside the user's save folder, finalizing in place via atomic MP4 atom construction (ftyp/free/64-bitmdat/moov) with zero media reads or writes during save. - Rolling Disk Arena & Bounded Storage: Implements packet lease protection and hard arena caps, reusing retired unleased slots and zeroing free blocks upon detachment to keep disk usage strictly bounded.
- Consume-on-Save Window Progression: Automatically advances the consumed media boundary on save success so rapid successive saves (e.g. 120s followed by 10s) produce only the newly captured delta while retaining necessary decoder preroll.
- Native Error Resilience & Windows Path Escaping: Correctly escapes Windows paths and quotes in native protocol error replies, preventing engine communication timeouts, and guarantees unique sequential filenames for rapid saves.
- Shell Explorer Selection & Settings Integration: Added native Windows
SHOpenFolderAndSelectItemsexplorer selection support and exposed the newsaveInPlacepreference (default on) across frontend settings and host adapters.
Clipture 1.5.1: Themed Installer, Player Lifetime & Visual Identity
[1.5.1] - 2026-09-09
Themed Installer, Player Lifetime & Visual Identity
- Themed NSIS Installer & Setup Customization: Replaced generic installer chrome with a customized silver and graphite field-recorder visual theme, featuring high-resolution 4x bitmap artwork, GDI halftone scaling, custom typography, and an interactive startup registration page.
- Clean Electron Startup Migration: Automatically cleans up legacy Electron Run registry entries (
electron.app.Cliptureandapp.clipture.desktop) upon installation or launch while synchronizing the canonicalstartOnLoginstartup preference. - Player Resource Lifetime & Memory Optimization: Implemented strict unmount disposal for HTML5 video elements, resetting decoders and releasing buffer memory when navigating away from the player. Web Audio graphs are now allocated lazily only for volume boost or mixed audio tracks, and audio polling timers suspend during pause or backgrounding.
- Instant Window Presentation: The main UI window initializes hidden with a native dark background and empty caption, revealing only after authoritative settings, appearance styles, and themes have fully loaded—eliminating startup flash.
- New Brand Identity & High-Resolution Icon: Introduced a transparent master render for the hardware recorder body and updated high-resolution application icons (
icon.ico,clipture-logo-ui.png), along with targeted Windows shortcut notifications on installation (icon-refresh.nsh). - Diagnostics Refresh Resilience: Hardened diagnostics snapshot recovery, avoiding stale telemetry while handling background save timeouts gracefully.
Clipture 1.5.0: Native Tauri 2 Architecture & Ultra-Low Footprint
[1.5.0] - 2026-09-08
Native Tauri 2 Architecture & Ultra-Low Footprint
- Migration from Electron to Tauri 2: Complete transition of the desktop host to Tauri 2 with native Windows integration, slashing idle resident memory from ~150 MB down to ~4.2 MB.
- Disposable UI Process (ADR 0004): The user interface window runs in an isolated worker process that completely exits when closed, eliminating WebView2 process and handle accumulation while background capture continues uninterrupted.
- Native Background Capture Continuity: High-performance C++ NVENC capture engine, WASAPI audio loopback, global hotkeys, and clip saving run entirely in the resident background controller without requiring any open web interface.
- Native Windows Notification Overlay: Pixel-perfect notification overlay rebuilt with Win32 GDI, layered window opacity, sharp border-flush geometry, and click-through support without web runtime overhead.
- Seamless Electron Crossgrade & Signed Updates: NSIS installer seamlessly upgrades existing Electron installations while preserving 100% of user data, clips, and settings in
%APPDATA%\Clipture\data.
Clipture 1.4.2: Black Screen Capture Fix & Audio Buzz Elimination
[1.4.2] - 2026-09-01
Black Screen Capture Fix & Audio Buzz Elimination
- WGC HDR Tonemapping & Safe Subresource Region Copying: Restored safe
CopySubresourceRegiontexture bounds handling and tonemapper processing for Windows Graphics Capture (WGC), eliminating black screen captures when recording HDR displays or window surfaces with dimensional padding and borders. - DXGI Output Format Hardening: Updated DXGI Desktop Duplication format validation to support SDR
DXGI_FORMAT_B8G8R8A8_UNORMeven on HDR-enabled displays, and dynamically detected capture formats to avoid false capture failures. - Capture Frame Lifecycle & COM Pointer Isolation: Scoped captured frame handles and presentation timestamps strictly to the execution lifecycle of
EncoderWorker::run(), preventing stale texture pointers from previous capture sessions from leaking into new recordings. - Continuous Audio Loopback Silence Filling: Restored continuous silent packet generation during periods of silence in WASAPI loopback capture (both system and game process loopback). This preserves a strictly continuous, monotonic audio PTS timeline, completely eliminating the timestamp stalls that previously forced the live AAC encoder to restart with audible buzzing, clicking, and crackling artifacts.
Clipture 1.4.1: Asymmetric Cadence Smoothing & Rock-Solid 60 FPS Pacing
[1.4.1] - 2026-08-23
Asymmetric Cadence Smoothing & Rock-Solid 60 FPS Pacing
-
Asymmetric Framerate Transition Easing: Implemented a "Fast Attack, Smooth Decay" exponential moving average filter for live framerate and cadence smoothing. When emerging from low-motion zones (such as smoke or static scenes), framerate metrics attack instantly (
$\alpha = 1.0$ , 0ms delay) to maintain responsive visual telemetry, while entering low-motion scenes tapers gracefully along a smooth exponential decay curve ($\tau = 0.7\text{s}$ ) rather than dropping off abruptly. -
Constant Frame Rate (CFR) Duplication Control: Added an explicit
kEnableFrameDuplicationpolicy toggle, ensuring mathematical CFR frame progression and timeline synchronization across all media players and video editors without stuttering. - FPS Presets Streamlined to 60 FPS: Focused core capture options on ultra-stable 24, 30, and 60 FPS presets, removing experimental high-framerate selections to guarantee rock-solid recording performance across all hardware configurations.
- Hardware Pacing & Latency Hardening: Maintained 0.00ms scheduler wake lateness with sub-millisecond timer precision, preventing DWM presentation jitter during demanding game loads.
Clipture 1.4.0: Smooth 60 FPS Capture Engine & Precision Frame Pacing
[1.4.0] - 2026-08-18
Smooth 60 FPS Capture Engine & OBS-Aligned Frame Pacing
- OBS Studio Alignment: Re-architected desktop duplication and frame delivery to match OBS Studio's direct on-tick sampling model, eliminating thread-hop pre-arm races, queue latency, and 3:2 cadence judder.
- Unified D3D11 Pipeline: Unified the DirectX 11 capture, color conversion, and NVENC encoding devices (
kPreferSharedCaptureDevice = true), completely eliminating cross-device KeyedMutexAcquireSync/ReleaseSyncsynchronization stalls and GPU latency spikes. - WDDM Realtime GPU Priority & Video Acceleration: Elevated capture and encoder D3D11 thread priority to maximum realtime (
SetGPUThreadPriority(7)) and enabledD3D11_CREATE_DEVICE_VIDEO_SUPPORT, guaranteeing 60 FPS capture execution even under 99–100% GPU loads during in-game smoke and particle bursts. - Precision Hybrid Scheduler Clock: Integrated high-resolution hybrid timer (
PrecisionTimer) combining WindowsCREATE_WAITABLE_TIMER_HIGH_RESOLUTION,timeBeginPeriod(1), and sub-millisecond CPU pause/yield spin loops to eliminate standard Windows sleep latency jitter. - NVENC VBV & 2.0s GOP Alignment: Configured 1-second VBV buffer provisioning (
vbvBufferSize = averageBitRate) to absorb high-entropy particle bursts without encoder stalling, and standardized keyframe intervals to 2.0-second GOP cadence without manual IDR collision pulses. - Constant Frame Rate (CFR) MP4 Muxer: Quantized video sample durations in
Mp4Muxerto exact integer multiples of10,000,000 / fps, eliminating duration variance in the MP4sttsatom for flawless 60 Hz playback across all media players. - Diagnostics & Telemetry: Added full frame drop diagnostics and telemetry reporting granular capture and encoder drop metrics.