Changelog
Every update to Hosaka Studio, newest first.
Fix EGL_BAD_MATCH on native Wayland
This release fixes a crash on native Wayland compositors where EGL rejected OpenGL context sharing due to a surface format mismatch.
What's changed
- Fix EGL_BAD_MATCH on native Wayland (COSMIC and others) — Qt requires the default
QSurfaceFormatto be set beforeQApplicationinitialises so that all internal GL contexts share the same format as the preview. Without this, EGL rejects context sharing withEGL_BAD_MATCHon native Wayland compositors such as COSMIC. GLX/XWayland silently tolerated the mismatch; EGL does not.
Dark theme and export bug fixes
This release fixes several bugs affecting export reliability and theming, and ships improvements to the transcription feature.
What's changed
- Fix VAAPI export on AMD GPUs — NV12 exports via VAAPI were failing on AMD radeonsi with an
ENOSYSerror. A passthrough scale filter now produces proper AVFrames for hwupload without a costly YUV→RGB→YUV round-trip, so hardware-accelerated export works correctly on AMD hardware. - Fix dark theme on Wayland compositors without Qt platform plugin — dark theme detected via the XDG portal was silently ignored on compositors like Hyprland that don't provide a Qt platform theme plugin. Hosaka now builds and applies an explicit
QPalettethat the Fusion style always respects. - Fix export overwriting existing captures — a bug where starting a new export would overwrite a previously captured recording has been resolved.
Fix Flatpak build broken by ctranslate2 dep
The Flatpak build was broken after a recent dependency change, preventing the Flatpak package from being built and distributed. This release restores it.
What's changed
- Fix Flatpak build failure — the Flatpak package can now be built and distributed again. Users on Flatpak were unable to receive updates until this was resolved.
Fix ctranslate2 missing from native packages
ctranslate2 was missing from native package builds, preventing background transcription from working on non-Flatpak installs. This release adds it to the packaging allowlist.
What's changed
- Fix ctranslate2 missing from native packages — ctranslate2 is now included in the native package bundle, restoring background transcription and SRT generation for users on
.deband other non-Flatpak distributions. Flatpak builds were unaffected.
Background transcription and SRT subtitle generation
Recordings now transcribe mic audio in the background using Whisper and produce an SRT subtitle file alongside the exported video. Also fixes R2 path prefix not loading on startup, and multi-monitor recording failures.
What's changed
-
Background transcription and SRT subtitles — After recording stops, mic audio is transcribed automatically using Whisper (via CTranslate2). The resulting
.srtfile is included with exports. Use--no-transcribeto disable. Auto-export waits for transcription to finish before writing. -
Model download progress in status bar — Whisper model downloads now show progress in the app status bar so you can see when the model is ready.
-
Fix R2 path prefix not loading on startup — The export dialog now loads cloud config from the credential store at init time, so your configured R2 key prefix (and other cloud fields) are applied without needing to re-open the Configure dialog first.
-
Fix second monitor recordings failing — An undamaged second monitor output no longer causes recordings to fail.
GPU-accelerated background segmentation and camera fixes
Background segmentation now runs on the GPU via the LiteRT WebGPU/Vulkan backend, with automatic fallback to CPU. Also includes fixes for external camera handling and AMD VAAPI export.
What's changed
-
GPU-accelerated background segmentation — Background removal now uses the LiteRT WebGPU/Vulkan accelerator, offloading inference to the GPU with automatic CPU fallback. This reduces CPU usage during recordings that use background effects.
-
Fix external camera aspect ratio — External cameras now render at their correct aspect ratio in the picture-in-picture overlay. The recording dialog also refreshes available video and audio devices when they change.
-
Fix AMD VAAPI export — A second export code path has been added for AMD GPUs to work around a hwupload format negotiation quirk where the original NV12 path triggered an ENOSYS error. AMD users now get hardware VAAPI encoding during export using a BGR24 readback path, with CPU libx264 as a last resort fallback.
-
Camera settings icon — The camera settings button now uses a video camera icon.
Fix AMD encoding regression and layout transition bug
Hotfix for two regressions shipped in v0.1.147.
What's changed
-
Fix AMD encoding regression — AMD GPU hardware encoding was broken by the layout modes changes in v0.1.147. This has been corrected.
-
Fix layout transition on first segment — The first layout segment in the timeline was incorrectly playing a transition animation instead of cutting directly to the initial layout.
Video layout modes
Switch between different video layout arrangements directly in the editor timeline.
What's changed
-
Video layout modes — A new layout track in the editor lets you switch between different arrangements of your screen and webcam feeds. Change the layout at any point in your timeline to mix and match compositions across a single recording.
-
Fix export on AMD devices — A bug that prevented encoding and export from completing on AMD GPUs has been fixed.
-
Lighter dependency footprint — The
boto3dependency has been replaced with a smaller, purpose-built S3 client, reducing install size.
Improved screen selection UX and Wayland token clearing
UX improvements to Wayland screen selection in the recording modal. This is only visible/affects Wayland, not X11.
What's changed
- Change Wayland sharing permission -
It's now possible to switch the Wayland sharing permission to a different
screen or window by clicking "Change screen selection" in the recording
modal.
You can also clear a previously saved Wayland screen sharing token via the
--delete-tokenflag when launching Hosaka. This ensures your compositor's screen picker will be re-triggered prior to the next recording, timelapse or screenshot.
Fix screen capture on Cosmic desktop (PopOS) — final fix
This release completes a three-part fix for screen capture on the Cosmic desktop environment (PopOS), building on the PipeWire negotiation fixes in v0.1.143 and v0.1.144.
What's fixed
- Encoder pixel format coverage — after v0.1.143 and v0.1.144 fixed
PipeWire format and framerate negotiation, PipeWire successfully negotiated
RGBA on Cosmic. Recording still failed: frames arrived as
pix_fmt=rgb0but the FFmpeg encoder's channel-count logic only coveredbgr0andbgra, sorgb0fell through to a 3-channel path and every frame was rejected with a shape mismatch error. The encoder now handles all six formats Hosaka offers during PipeWire negotiation (BGRx,BGRA,RGBx,RGBA,RGB,BGR). Recording on PopOS is fully working.
Fix screen capture on Cosmic desktop (PopOS) — part 2 of 3
This release is the second in a three-part fix for screen capture on the Cosmic desktop environment (PopOS), and improves PipeWire format negotiation compatibility across all compositors.
What's fixed
- Screen capture on Cosmic desktop (part 2) — v0.1.143 added support
for the RGBA pixel formats that Cosmic advertises, but recording could still
fail with "no more output formats". The remaining cause was a fixed framerate
value (
0/1) in Hosaka's PipeWire format proposal. Cosmic advertises a fixed60/1framerate; when two different fixed values are compared, PipeWire finds no intersection and rejects all formats. Hosaka's format proposal no longer specifies a fixed framerate — PipeWire now inherits whatever framerate the compositor offers. This also improves compatibility with any compositor that advertises a specific fixed framerate.
Fix screen capture on Cosmic desktop (PopOS) — part 1 of 3
This release is the first in a three-part fix for screen capture on the Cosmic desktop environment (PopOS). It also fixes video export on Intel Gen 3 (Ivy Bridge) integrated graphics.
What's fixed
-
Screen capture on Cosmic desktop — recording failed immediately with "no more output formats" on PopOS and other systems running the Cosmic desktop environment. Hosaka was offering only the BGRx pixel format during PipeWire negotiation, but Cosmic's portal only advertises RGBA and BGRA. Hosaka now offers all supported formats (BGRx, BGRA, RGBx, RGBA) and picks whichever the compositor accepts.
-
Export failures on Intel Gen 3 (Ivy Bridge HD 4000) — exporting a recording failed with a VAAPI hardware upload error on Ivy Bridge integrated graphics. Recording already used a CPU encoder fallback for this hardware; the export path now applies the same preference.
Faster GPU export and webcam display fix
This release improves export speed on hardware-accelerated systems.
What's new
- NV12 GPU readback for FFmpeg export — frames now move from the GPU compositor to FFmpeg via the NV12 pixel format, avoiding a CPU round-trip on NVIDIA and Mesa hardware. Export times drop and CPU load during export is lower. When exporting video in optimal conditions (no other GPU-intensive applications competing) export times are halved.
AI webcam background removal and blur
Your webcam no longer needs a green screen. Hosaka Studio now uses an on-device AI model to separate you from your background in real time, letting you remove it entirely or replace it with a soft blur. No cloud processing or third-party services required.
What's new
- Background removal — the webcam overlay can cut out your background completely, leaving just you composited over your screen recording. Works without a green screen.
- Background blur — prefer a softer look? Blur mode keeps your background visible but defocused, similar to virtual background features in video call apps.
- On-device inference — segmentation runs locally using Google's MediaPipe selfie segmentation model via LiteRT. The model (~1 MB) is downloaded once and cached. Your video never leaves your machine.
- Webcam placement aware — when the background is removed, the webcam overlay position adjusts automatically to account for the tighter crop.
Under the hood
Hosaka ships its own ctypes wrapper for the LiteRT native library rather than depending on Google's Python bindings, which improves packaging compatibility across distros (Debian, Fedora, Arch, Flatpak).
Animated backgrounds and custom shaders
Your background can now move. Hosaka Studio supports animated backgrounds powered by GLSL shaders, including a set of built-in effects and support for custom Shadertoy-compatible shaders you write or download yourself.
What's new
- Animated background effects — eight built-in effects are available, split into two groups:
- Post-process effects layer animation on top of your existing background image: Lens Breath, Chromatic Decay, Prismatic Ripple, RGB Orbit, and Holographic Foil.
- Generative effects replace your background entirely with a live animation: Plasma, Aurora, Particles, and Mesh Gradient.
- Custom shader support — load any Shadertoy-compatible GLSL fragment shader as your background. If you can paste it into shadertoy.com, it will work here.
- Intensity and speed controls — each effect exposes two sliders so you can dial in exactly how subtle or dramatic you want it.
- Watermark overlay — Want to support Hosaka Studio? You can now add an optional watermark to exported videos.
Upload recordings directly to YouTube
You can now publish recordings to YouTube without leaving Hosaka Studio. Authenticate once with your Google account and your next export goes straight to your channel.
What's new
- YouTube upload — after export, Hosaka uploads the video to YouTube using your Google account. Set the title, description, and privacy level (private, unlisted, or public) from the upload settings panel.
- OAuth2 desktop flow — authentication uses Google's standard desktop OAuth2 PKCE flow. Credentials are stored locally and refreshed automatically; you only need to log in once.
- Streaming upload — video is streamed to YouTube as it is exported, so upload begins before the export even finishes. No temporary file required.
- Resumable uploads — large recordings use YouTube's resumable upload API with automatic retry on transient failures.
Upload recordings to S3 and Cloudflare R2
Hosaka Studio can now upload your finished recording directly to any S3-compatible cloud storage bucket — including Cloudflare R2, AWS S3, and self-hosted alternatives. No intermediate file juggling required.
What's new
- S3 and Cloudflare R2 upload — configure a bucket once (endpoint URL, access key, secret, region) and Hosaka will upload your exported video automatically after each recording session.
- Streaming multipart upload — video is streamed to the bucket as it is exported, without buffering the whole file to disk first.
- Path prefix and public URL — organise uploads into bucket subdirectories and optionally set a public URL prefix so Hosaka can show you a shareable link after upload.
- Connection test — validate your credentials and bucket access directly from the settings panel before committing to an upload.