Skip to content

Releases

0.5.8

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 23:45
7eaf58b

Kestrel can now change each Raysharp camera's picture: hue, brightness, contrast, saturation and sharpness, from the Live page.

App

  • Live has a Picture button beside Move (or press P) for the picked camera, where it has picture settings. It opens sliders for hue, brightness, contrast, saturation and sharpness, and the picture changes as you drag.
  • Reset puts a camera's picture back to its defaults.

Sources

  • Raysharp recorders, such as the Swann DVR8-4575, offer picture settings on every channel. A change applies at once and stays on the recorder, as one made on the recorder itself would.

API

  • GET /api/cameras/:source/:camera/picture reads a camera's picture settings, each from 0 to 1, and POST on the same route changes them or puts back the defaults.
  • Each camera's controls.picture in /api/cameras says which settings it has and whether it can reset them.

0.5.7

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 23:32
f1bac4f

Kestrel now shows which version you're on: beside its name in the app bar, and in more detail at the end of Settings.

App

  • The app bar shows Kestrel's version beside its name, so you can tell at a glance which release a browser, the desktop app or Home Assistant is running.
  • Settings ends with an About card: this page's version and when it was built, the server it's talking to with its version and id, and a Release notes button for the version you're on. Where the server runs another version than the page, it says so.

0.5.6

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 23:24
113edd4

Recordings now shows which clips are only on a camera's SD card, before you click them, and says plainly why they won't play.

Recordings

  • Clips a camera lists on its SD card but won't hand over are striped on the timeline instead of just faded, so they stand out from recordings that play. The key under the timeline gets an "Only on the camera" entry whenever there are any. Some Reolink cameras on their own, without a hub or recorder, behave this way, and Kestrel's own recordings of them still play as usual.
  • Clicking one of those clips says it's only on the camera's SD card and that the camera doesn't share those. Hovering over it says the same.

Fixes

  • The note over the player stayed up after a click elsewhere on the timeline, until a recording started. Any click on the timeline now clears it.

0.5.5

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 23:12
958af82

Recordings gets a Custom speed, and clips fade into each other again as they play on.

Recordings

  • Custom is the last option on the speed toggle. It opens a small popover with the field focused, ready to type any speed from 0.1× to 32×, and once it's set the option shows that speed, such as 5×. Enter or a click outside closes it; closed with nothing typed, the toggle goes back to the speed playing. This replaces the field that sat beside the toggle, so it now works on a phone too.

Fixes

  • When one recording ran on into the next, the picture went to the loading shimmer instead of holding the last frame and fading into the next clip. Each camera's tile now holds its own last frame while the next clip loads, with one camera or several, and when a speed change switches stream.

0.5.4

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 23:06
2d7cdeb

Live fills the window: the cameras tile to the space they have, rather than keeping one fixed shape for each count.

Live

  • Smart tiling is the new default. It sizes the tiles to the window and fills as much of it as it can, in rows or columns with no empty cells, the larger tiles first where the count doesn't split evenly. In a wide window it matches the old shapes (three is one large and two stacked, five is two over three); in a tall or narrow one the cameras stack rather than leaving space empty.
  • It follows the window as it changes size and when Live goes full screen.
  • The new View menu beside the layout picker, or T, switches back to the fixed layouts. The choice is kept in this browser.
  • On a phone, smart tiling fits the cameras to the screen too; with fixed layouts they're listed one under another as before.

Settings

  • Sources have their own section at the bottom of Settings, under the camera order, recording and devices, with Add source beside its heading. Save stays at the top.

0.5.3

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 22:33
cd8cdbe

Recordings keeps up with today: the newest recording runs on up to now, as the recorder's own client shows it, and full screen keeps the day's timeline under the picture.

Recordings

  • Full screen now takes the video, its controls and the day's timeline together, so you can see the day and click to another time without leaving full screen. A clip marked with Cut shows on it too. The day and camera pickers stay out of the way.
  • On today, the list is read again every 30 seconds while the page is open, so a camera recording all the time has its newest recording running on up to now, on the timeline and in the table, rather than stopping where it was when the page opened.
  • Playing on into the newest recording carries on past where it ended when the page opened, rather than stopping there.

Updates

  • An open page moves onto a new release by itself: the service worker picks up the new build and takes over, and the page reloads onto it. The page's script and styles come from the network first, so a new release never starts with the last one's bundle.

0.5.2

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 22:16
1ac8eb0

Kestrel offers to install itself as an app. Installed, it opens in its own window, starts without a connection, and its icon's menu goes straight to Recordings, Events or Sources.

Installing the app

  • Where the browser can install Kestrel, such as Chrome or Edge, a banner offers it.
  • Not now, or turning down the browser's prompt, puts the banner away for good in that browser. Install stays in Settings for as long as the browser can install it.
  • Browsers only install over HTTPS or on localhost. Safari and other browsers that don't offer installs to the page install from their own menu, such as Add to Home Screen.

Fixes

  • The installed app starts offline after its first visit, rather than only after the second.
  • The app's shortcut to Sources no longer goes through the old /recorder address.
  • Kestrel no longer shows in the share sheet, since it had nothing to do with a share.
  • A shortcut opens in the app's window when it's already open, rather than another.

0.5.1

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 22:04
57c0df9

Kestrel fits a phone now. Live, Recordings and Activity stay within the screen's width, and the players have controls laid out for a phone. In Home Assistant, Kestrel takes the whole screen.

The whole screen in Home Assistant

  • Opened from Home Assistant's sidebar, Kestrel hides that sidebar and its header to take the whole screen.
  • The menu button at the start of the app bar shows the sidebar again; on a phone, it's in the app bar's menu.
  • To keep the sidebar, turn off the app's new Hide the Home Assistant sidebar option.

Players on a phone

  • Live and Recordings share the same three rows: the transport with full screen, the layouts or speeds, then the zoom and capture.
  • On Recordings, Stop, Next frame, Cut and Download move into a More menu, with the recorder's clock where Live has mute.
  • The volume slider and the keyboard help are left out on phones and touch screens; the mute button stays.
  • The video keeps its shape with the timeline straight under it, rather than stretching to fill the window.

Fixes

  • Live no longer shows "Page 1 of 1" when there's only one page.
  • The timeline's hour labels thin out to fit a narrow screen.
  • Activity's tables scroll sideways in their frame instead of widening the page.

0.5.0

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 21:12
92fd2fd

Reolink hub clips are no longer converted. They're kept in H.265 as the hub recorded them, which is what took a Home Assistant Green to the edge in 0.4.x. There's also an Activity page to see what Kestrel is doing and what it's allowed to use.

H.265 kept as it is

The hub records in 4K H.265. Up to 0.4.1, Kestrel converted every clip to H.264 as it copied, and one 4K conversion could hold about 500 MB and a core and a half on a Green for twenty minutes.

  • Hub clips go into an MP4 as they are, with no conversion, so copying is mostly disk work now.
  • The Recordings page plays H.265 where the browser can, which includes Chrome, Edge and Safari. Where it can't, it says so; download the clip to play it in another player.
  • Playing across a camera's older H.264 clips and newer H.265 ones switches between them as it goes.
  • Bambu Lab footage is MJPEG, so it's still converted, at the lowest priority.

Activity

  • Memory, CPU, disk and copy rate each show what's used against what background work is allowed, with the allowance drawn on the graph. They turn amber past it.
  • Errors and job runs go to an activity log, kept for 7 days, with tables for errors, recent copies and jobs.
  • Every table has a quick search, filters and a date and time filter, all remembered.

Agents

  • An OpenCode plugin for the kestrel Code Mode tools, and kestrel agent call to run them from the command line.

0.4.1

Choose a tag to compare

@timmo001 timmo001 released this 13 Nov 20:19
d19e00d

On a Home Assistant Green, 0.4.0 still ran out of memory once it reached the Reolink hub's recordings. Converting them has its own limits now, and new motion clips no longer wait behind a long copy.

Converting recordings

The Reolink hub records in 4K H.265, which Kestrel converts to H.264 as it copies. In 0.4.0, ffmpeg used every core with x264's full lookahead and held dozens of 4K frames at once: 2.5 GB on an 8-core laptop, and about 1 GB on the Green, before the limits could step in. The whole replay was also held in memory before conversion started.

  • Replays go to disk as they arrive, at the copy rate, and wait on the same limits as any other copy.
  • Background conversions run ffmpeg on one thread with a short lookahead, and wait for room before they start. A 4K hub clip now converts in about 400 MB, where 0.4.0 took 2.5 GB.
  • Playing a clip that isn't copied yet converts on up to four threads, so it still starts quickly.
  • Bambu Lab footage converts the same way.

Hub clips convert slowly on a Green, several minutes each, but they no longer take it down.

Recent clips first

Motion clips were already copied newest first, but each pass worked through the whole list it started with. On a first run that can be thousands of files, so new motion waited hours. A copy now looks again every 10 minutes, so new clips go ahead of older ones still waiting.

Docs

  • The install docs are in one place, with a tab for each platform.