Skip to content

v2.5.0: The WebUI & Recording Refresh

Choose a tag to compare

@github-actions github-actions released this 29 Sep 18:00
· 26 commits to main since this release

Highlights

  • In-game recording : the Record button now saves an MP4 inside KSP using your graphics card's encoder. The frame rate stays steady, recording continues if you close the web page, and the file stays playable after a game crash.
  • Camera layout page (/layout.html) : watch several cameras in one window. Layouts can be saved and shared by name. layout.html?program gives OBS a clean feed that switches layouts on air.
  • Lighter on your framerate : cameras render at most Max FPS times per second, with far less memory churn while streaming.
  • New web UI : a quieter, more readable look with a bundled font, and it loads nothing from the internet.

Added

  • Camera layout page (grid button, or /layout.html) with Spotlight, Fullscreen and Fill modes, a camera list (C) with drag and drop, tile swapping, Undo (Ctrl+Z) and a Columns option (L)
  • Saved layouts - open one anywhere with layout.html?layout=Name. Every screen showing it, OBS included, follows changes made from another device
  • Clean feed for OBS (layout.html?program) - shows the layout currently on air, with no controls. Switch with Take on air or Shift+1 to 9, or from a Stream Deck through /program/take/<layout name>
  • All cameras of a layout share one connection, so big layouts no longer hit the browser's 6-connections-per-host limit
  • In-game recording (default) - Media Foundation on Windows, ffmpeg on Linux and macOS
  • "Video codec" option - H.264 by default, AV1 on Linux and macOS when ffmpeg has an AV1 encoder (see the README's "Recording & Codecs" section)
  • Recordings panel - lists recordings on the KSP computer, with Play and Download from any device on your network
  • Record, pause and stop from the camera viewer, not only the main page
  • Performance overlay (Ctrl+Alt+F6, or Settings > Diagnostics) - FPS, frame time, JRTI's own cost, memory and per-camera stats, with optional CSV logging
  • Diagnostics page in the web UI (/debug.html) - the same numbers live, with the last two minutes charted
  • "Spread camera renders across frames" setting (on by default) - cameras take turns rendering instead of all on the same frame
  • The web UI shows the address other devices on your network can open

Changed

  • New web UI look, and it no longer loads anything from the internet, so it works on a LAN without internet access
  • Every camera renders at most Max FPS times per second, whether it has an in-game window, a stream or both. Windows used to render at half the game's frame rate
  • Much less memory churn while streaming, and at most two frames per camera are read back and encoded at once
  • Stream frames land closer to when they are due, so spacing stays even
  • The main page's live previews share one connection instead of one each
  • Settings are saved in PluginData/settings.cfg, so updates no longer reset them. Your current settings move there automatically (CKAN users may need to set them once more)
  • The camera viewer shows the camera's name and recording state, and reconnects on its own

Fixed

  • Camera feeds recover on their own after closing the map view
  • Streamed cameras pace their frames properly toward Max FPS, so viewing is smoother
  • Recordings no longer get stuck on "Saving..." or keep showing as recording after the game has saved them
  • A recording's stream reconnects when the camera is closed and reopened in game
  • JRTI now warns on screen and in the settings window when the web UI's port is taken by another program
  • The Record button no longer stays disabled in browsers that can't record on their own
  • Camera cards stop requesting snapshots in background tabs
  • Card order and record groups survive a game restart

Deprecated and removed

  • The browser recorder is now "legacy" and will be removed in v3.0.0, along with its upload endpoints and the MP4/WebM fixers
  • The "Render camera windows every other frame" setting is replaced by Max FPS

Heads up

Most of this has only had light testing in KSP. If something misbehaves, please open an issue with your KSP.log.