Skip to content

Repository files navigation

Kjerag

Native 360° video player for the COSMIC desktop, written in Rust.

Kjerag playing a flight zoomed all the way out to a little planet

Kjerag plays Insta360 .insv files directly: open the file straight off the camera and press play. Zero configuration.

Features

  • Drag to reframe, scroll to zoom
  • Gyro horizon lock
  • Blended lens seam
  • Screenshots
  • Copyable view references
  • Zero-copy hardware decode

Install

Install Kjerag in COSMIC Store, GNOME Software or Discover. One click, and updates arrive with everything else.

Or two lines in a terminal:

flatpak remote-add --if-not-exists kjerag https://kjerag.harding.dev/kjerag.flatpakrepo
flatpak install kjerag dev.harding.Kjerag

Every build is GPG signed. Single-file bundles, for a machine that should not carry a remote, are attached to each release.

Status

Beta.

Camera Support
Insta360 X4 Air ✅ Fully Supported
Insta360 ONE X2 ✅ Fully Supported
Insta360 X3, X4, X5 ⚠️ Unverified
DJI, GoPro ❌ Not supported

Have a camera that is unverified or missing? Open an issue with a short raw clip straight off the camera.

Releases carry an x86_64 and an aarch64 build. The aarch64 one is compiled and unit tested in CI and has never been run on aarch64 hardware; reports are welcome in the same place.

See docs/ROADMAP.md for where things stand and docs/ARCHITECTURE.md for how it works.

Why

Insta360 Studio has no Linux build, and nothing on Linux plays raw .insv with calibrated reframing: VLC only handles pre-stitched equirectangular, and mpv shader hacks have no lens calibration, seam blending, or horizon lock. The gap is real; this fills it.

How

An X4-class .insv is an MP4 carrying two 3840×3840 HEVC streams (one per lens) plus a metadata trailer with full per-lens calibration (Mei/UCM model), raw gyro, and per-frame exposure. Kjerag decodes both streams via VA-API, imports the frames into wgpu zero-copy (dmabuf), and renders the reframed view in a single shader pass. Measured on an AMD Phoenix iGPU: dual-stream decode runs 2.4× realtime at 17% CPU.

License

AGPL-3.0. GPL-3.0 code from Gyroflow may be used where it helps (GPL-3.0 is one-way compatible with AGPL-3.0), and any file that takes it carries its own SPDX header. None does today: the projection math is written from the published Mei/OpenCV-omnidir description of the model.

About

Native 360 (.insv) video player for COSMIC, in Rust

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages