From 8cdc06dc5faffca6cf90b12215a2ba67453fb91a Mon Sep 17 00:00:00 2001 From: badbread Date: Sat, 8 Aug 2026 18:12:30 -0700 Subject: [PATCH 1/2] docs(readme): call out the phone-playable HD main repair Add a bullet to 'The details that earn their keep' for the server-side H.265 main repair: cameras whose main a mobile decoder rejects still get HD on a phone, detected per-camera from the served SDP, transcoded on demand (only while watched), and reached first by the client so it comes up fast. Off by default. Signed-off-by: badbread --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 916ba80a..5aee71d2 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,7 @@ seat instead of a hobby dashboard, and honestly it is where most of the work goe - **Frame-accurate stepping.** The clip player steps one frame at a time, forward or back, with true exact seeking. No "back one frame does nothing" nonsense, which took a real fix to get right (mpv snaps small seeks to keyframes unless you force exact ones). - **Filmstrip scrubbing.** Dragging the timeline shows real pre-decoded frames instead of black flashes, and playback is gapless across recorded segment boundaries so there is no blackout at the seam. - **Adaptive quality that respects your pipe.** Android picks Auto, Full, or Data saver on its own. The desktop wall has a matching Data-saver tier, per-camera or as the wall default, with a small "SD" badge on any pane that is running the low-res transcode so you always know what you are looking at. +- **Some cameras won't give a phone a playable HD stream. Crumb fixes that.** A handful of H.265 cameras publish a main that a phone's decoder flatly rejects, so on mobile you would be stuck watching them in SD. Crumb detects exactly which cameras do it, from what their stream advertises to a client, and transcodes a phone-playable HD version on the server, only for those cameras and only while someone is actually watching one full-screen. The app reaches straight for the repaired stream instead of stalling on the broken one first, so it still comes up fast. Off by default since the transcode costs a little CPU, one switch to turn on. - **The LPR watchlist tells the truth.** Set a fuzziness and it shows you, live, the exact OCR misreads it would accept for the plate you are typing. No mystery percentage. - **Run both plate readers and let your own cameras pick the winner.** Turn Frigate and Crumb's engine on for the same camera and Crumb scores them head to head: which one read the plate, which one missed it, and where they agreed or differed, with the crops side by side so you confirm the truth yourself. No guessing which ALPR handles your angles and lighting, you just watch them race on real traffic. - **The local plate reader sips power.** Crumb's own ALPR is CPU-only, no GPU, and motion-gated, so it idles most of the time: roughly a third of one core doing nothing, about half a core while it actually works a plate. A recorder runs 24/7, so reading plates should not mean a pinned core all day. From 466bbeb2cac9638c3921e7f7543e19085f0c54b9 Mon Sep 17 00:00:00 2001 From: badbread Date: Sat, 8 Aug 2026 18:14:20 -0700 Subject: [PATCH 2/2] docs(readme): reframe the HD-repair callout around on-demand efficiency Lead with the energy story the section is about: the repair runs only while someone is watching that camera, nothing runs when idle. Reframe the opt-in as 'never pays if it never needs it' instead of 'costs CPU', which undercut the whole point. Signed-off-by: badbread --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5aee71d2..768ae8a7 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ seat instead of a hobby dashboard, and honestly it is where most of the work goe - **Frame-accurate stepping.** The clip player steps one frame at a time, forward or back, with true exact seeking. No "back one frame does nothing" nonsense, which took a real fix to get right (mpv snaps small seeks to keyframes unless you force exact ones). - **Filmstrip scrubbing.** Dragging the timeline shows real pre-decoded frames instead of black flashes, and playback is gapless across recorded segment boundaries so there is no blackout at the seam. - **Adaptive quality that respects your pipe.** Android picks Auto, Full, or Data saver on its own. The desktop wall has a matching Data-saver tier, per-camera or as the wall default, with a small "SD" badge on any pane that is running the low-res transcode so you always know what you are looking at. -- **Some cameras won't give a phone a playable HD stream. Crumb fixes that.** A handful of H.265 cameras publish a main that a phone's decoder flatly rejects, so on mobile you would be stuck watching them in SD. Crumb detects exactly which cameras do it, from what their stream advertises to a client, and transcodes a phone-playable HD version on the server, only for those cameras and only while someone is actually watching one full-screen. The app reaches straight for the repaired stream instead of stalling on the broken one first, so it still comes up fast. Off by default since the transcode costs a little CPU, one switch to turn on. +- **Some cameras won't give a phone a playable HD stream. Crumb fixes that, on demand.** A few H.265 cameras publish a main that a phone's decoder flatly rejects, so on mobile you would be stuck watching those in SD. Crumb detects exactly which cameras do it, from what their stream advertises to a client, and transcodes a phone-playable HD version on the server, only for those cameras and only while someone is actually watching one full-screen. Nobody watching, nothing runs, so an idle recorder stays idle. And the app reaches straight for the repaired stream instead of stalling on the broken one first, so it still comes up fast. Opt-in, so a recorder that never needs it never spends a cycle on it. - **The LPR watchlist tells the truth.** Set a fuzziness and it shows you, live, the exact OCR misreads it would accept for the plate you are typing. No mystery percentage. - **Run both plate readers and let your own cameras pick the winner.** Turn Frigate and Crumb's engine on for the same camera and Crumb scores them head to head: which one read the plate, which one missed it, and where they agreed or differed, with the crops side by side so you confirm the truth yourself. No guessing which ALPR handles your angles and lighting, you just watch them race on real traffic. - **The local plate reader sips power.** Crumb's own ALPR is CPU-only, no GPU, and motion-gated, so it idles most of the time: roughly a third of one core doing nothing, about half a core while it actually works a plate. A recorder runs 24/7, so reading plates should not mean a pinned core all day.