Streamer Comparison - themactep/thingino-firmware GitHub Wiki

Streamer Comparison

Thingino offers four interchangeable streamer backends. Which ones you can choose depends on the branch; the branches differ in which one they ship as the default. This page summarizes features, WebUI integration, documentation, and reliability to help you pick. Branch tips and package pins move quickly — treat specifics below as accurate as of 2026-10.

Branches and defaults

Branch Default streamer Streamers offered Status
ciao Prudynt-T all four User-facing stable line — releases are cut from here; recommended
master Raptor all four Main development branch
aperto timps on dev-camera profiles all four Development branch for the open IMP/V4L2 stack
figata Raptor Prudynt-T, Raptor, Strero (no timps) Experimental branch on the master line
piuma timps on dev-camera profiles all four Experimental branch built around timps

Notes:

  • The streamer is a single-choice menu (make menuconfig -> Thingino Firmware -> Streamer Packages -> Streamer). Selecting one excludes the others.
  • No streamer is built for toolchain-only or a1 SoC profiles (explicit None default). On aperto and piuma the timps default applies to dev-camera profiles; others default to no streamer.
  • Per-camera defconfigs can override the branch default — for example, the Wyze Cam v3 rt5370 variant pins Raptor, and the A1N NVR profile pins None.
  • The old stable branch is frozen (last commit 2026-08-15) and is no longer offered in the image builder or docs. Builds and advice now target ciao.
  • On aperto, Raptor can be selected and builds against the open IMP stack (V4L2_OPENIMP=1) instead of the vendor libimp.

At a glance

Prudynt-T Raptor timps Strero
Source themactep/prudynt-t gtxaspec/raptor Lu-Fi/timps themactep/strero
Architecture Monolithic daemon Modular microservices (rhd, rsd, rwd, rmr, rvd + raptorctl) Single minimal daemon Single daemon
Default on ciao master, figata aperto, piuma (dev profiles) none
Protocols RTSP (TCP/UDP, IPv6 optional), HTTP MJPEG, fMP4 over HTTP, optional WebRTC RTSP, HTTP/MJPEG, WebRTC, SRT, raw UDP/RSP output RTSP (H.264/H.265), SRT, fMP4 over HTTP (MSE), MJPEG, WebRTC/WHEP RTSP
Video codecs H.264, H.265, MJPEG H.264, H.265, MJPEG H.264, H.265, MJPEG H.264, MJPEG
Audio AAC, Opus, MP3, FLAC, G.711 (codec set is build-time configurable) AAC and others per sink AAC (with FAAC), G.711 G.711A, G.711U, Opus (optional module)
OSD SEI metadata (players need support) + optional burn-in (BR2_PACKAGE_PRUDYNT_T_OSD_BURNIN) Burned into the video — visible in every player Burn-in with built-in TrueType rasterizer Basic
Motion detection Yes (IVS-based) Yes Yes (IMP_IVS) No
Config file /etc/prudynt.json (jct) /etc/raptor.conf (raptorctl) /etc/timps.conf JSON via jct
Init script S31prudynt S31raptor S95timps S31strero
WebUI integration Richest, most mature Good and improving Good, native plugin pages None shipped
Documentation Wiki + user manual chapters raptor-docs + wiki pages In-repo docs/ incl. AI-oriented reference, config keys, troubleshooting Minimal (package help text)
Reliability track record Longest; the long-time default Solid on master; most-tested pairing there Newer, actively maturing Experimental

Prudynt-T

Traditional monolithic streamer, the thingino default for most of the project's life.

Pros

  • Default on ciao, the recommended branch — the most-tested streamer/branch pairing.
  • Deepest WebUI integration: dedicated OSD (including timestamp burn-in options), motion, audio, and image settings pages built around it.
  • Rich build-time option set: AAC/Opus/MP3/FLAC, RTSP over IPv6, recording prebuffer, optional WebRTC (libpeer), multiple OSD font backends.
  • Mature motion-detection and notification plumbing (send2telegram, speaker hooks).

Cons

  • OSD is SEI metadata by default: standard players (VLC, NVRs) do not render it — you see it in the WebUI preview or via the SEI helper scripts. Burn-in exists but is an opt-in build option.
  • The WebUI fMP4 browser player is H.264-only; if a stream runs H.265, preview with MJPEG mode or an external player.
  • Monolithic design: one process does everything, so a fault takes down all functions.

Raptor

Modular "streaming system" of small cooperating daemons, default on master (and figata).

Pros

  • OSD is burned into the video — timestamps and labels appear in any player or NVR.
  • Per-stream control and rich CLI (raptorctl), timelapse tooling, on-camera recording and ring buffers (rvd), standalone WebRTC and SRT daemons.
  • Full set of WebUI pages (main/sub stream, sensor, image, audio, OSD, timelapse).
  • Very active development; the default on the branch where new camera features land first.

Cons

  • More moving parts: several daemons plus a camera agent, so more surface to debug.
  • WebUI config pages historically show only keys present in the shipped sparse raptor.conf; unset fields can look empty even though compiled-in defaults apply (a fix showing defaults is in flight via PR #1794).
  • RTSP concurrent-client default is conservative (4; code cap 8 per daemon) — NVR stacks that open many sessions may need rtsp.max_clients raised.
  • OSD WebUI page covers fewer elements than Prudynt's; some settings still done via raptorctl / direct config edits.

timps

"Tiny IMP Streamer" — minimal-dependency, pure-C streamer. Default on aperto and piuma.

Pros

  • Small footprint and fast startup; single daemon, few dependencies.
  • Modern protocol set out of the box: RTSP with H.264/H.265 and AAC/G.711, SRT, fragmented-MP4 browser preview via MSE (handles H.265 where Prudynt's player does not), MJPEG, WebRTC/WHEP.
  • Built-in motion detection, on-demand encoding, optional native day/night switching.
  • Ships its own WebUI plugin pages (encoder, image, OSD, audio, motion, recordings, privacy, talkback, ROI crop) — integration is native, not a fork of core pages.
  • Best in-repo documentation of the four: a full config-key reference (defaults, ranges, live-vs-restart semantics per key), a features overview, and a symptom-based troubleshooting guide.

Cons

  • Newest streamer with the shortest field history; expect churn, though it now has tagged releases pinned per branch.
  • Some features vary per SoC or are compile-time optional — check the config-key reference for your chip before assuming a key works.
  • WebUI page coverage is newer and still expanding compared to Prudynt's.

Strero

Small experimental streaming stack from themactep.

Pros

  • Very small and simple; JSON configuration through the standard jct tooling.
  • Optional audio module (G.711A/G.711U/Opus).

Cons

  • No WebUI pages ship with it — configuration is manual.
  • No dedicated documentation beyond package help text.
  • Least proven of the four; treat as experimental/developer option.

Which one should you pick?

  • Flashing a camera for daily use: stay on ciao and keep its default, Prudynt-T. It is the combination with the longest reliability record and the smoothest WebUI experience.
  • You need burn-in OSD that every player shows, or you live on master: Raptor.
  • You want the leanest stack, H.265 browser preview, or SRT/WHEP: timps (also the natural choice on aperto/piuma for open-ISP work).
  • Curiosity/testing only: Strero.

See also Media Streaming Endpoints for the URL formats each streamer exposes.