timps
TIMPS - tiny imp streamer: an Ingenic chip mascot with a camera lens

timps tiny imp streamer

A small RTSP / fragmented-MP4 / MJPEG / WebRTC / SRT streamer for Ingenic SoC IP cameras. Pure C, built straight on libimp, with a live JSON control API, native day/night and motion detection. One of the streamer choices in thingino firmware.

Newest release v1.12.1 2026-11-08
9
Ingenic SoCs: T10 to T41 and C100
2
libimp stacks: the vendor one and OpenIMP
~400 KB
one binary, stripped, all options on (T31)
/control
live JSON API with per-SoC capabilities

Features

Everything a camera needs, in one small process.

Streaming

RTSP with H.264/H.265 and AAC/G.711, fragmented MP4 for the browser (MSE), JPEG snapshot and MJPEG. Optional RTSPS/HTTPS, MPEG-TS over SRT and WebRTC/WHEP.

On-demand encoding

A stream is encoded only while a client watches. The frame sources keep running by default, so exposure and day/night stay correct while nobody watches.

Live control API

GET/POST /control: ISP image, encoder, OSD, audio, motion, day/night, changed live and persisted. caps says what this SoC and build support.

Event stream

GET /events (SSE) pushes motion, day/night and stats events instead of polling.

Day/night

Native detection from the ISP exposure with short IR looks and day checks, or a fixed time window, or real sunrise and sunset. Replaces thingino's daynightd.

Motion detection

IMP_IVS grid with live per-cell state for a preview overlay and an on_motion hook.

OSD and privacy

Per-stream TrueType OSD with placeholders (time, hostname, fps...), outlines, logos, and privacy masks, all live.

Recording

Continuous or motion-triggered fMP4 segments to SD with pre/post-roll and pruning, plus JPEG timelapse.

Audio both ways

timps owns the speaker: ONVIF backchannel, browser microphone over WebSocket, and a system-sound play queue.

ROI, crop and rotation

Encoder ROI, ISP crop/zoom and 90/270 rotation where the SoC and libimp allow it, tiered per SoC in caps.

Test pattern

With OpenIMP: synthetic pictures, scripted moving objects scored against the motion detection, or the sensor's own pattern.

Security

RTSP Digest, HTTP Digest/Basic and a /control token with CORS.

Supported SoCs

One source tree, one PLATFORM switch. Features differ per SoC and libimp; the capability matrix has the details.

T10
rotation with OpenIMP
T20
rotation with OpenIMP, MBRC switch
T21
rotation with OpenIMP
T23
rotation with OpenIMP
T30new in 1.12
H.265, rotation, ROI with OpenIMP
T31
rotation in libimp
T40
I2D rotation, AE target and gain cap
T41
I2D rotation incl. 180
C100
vendor libimp

What's new

v1.12.1 released 2026-11-08, v1.12.0 on 2026-11-07. Full list in the changelog.

  • v1.12.1 - rotation always available: no build option any more; videoN.rotation still defaults to 0, and the WebUI offers the angles the camera can do.
  • v1.12.1 - docs: this page and a searchable docs site; the assistant docs are English only, with an honesty rule and per-feature availability.
  • v1.12.0 - full T30 support: rotation 90/270 for doorbells, H.265 and live rate control with OpenIMP, ISP keys (DPC, RawDRC, antifog, noise reduction) and encoder ROI.
  • v1.12.0 - one rotation path: T10/T20/T21/T23/T30 rotate through OpenIMP's frame source; the old T23 software rotate is gone (a T23 rotation = 90 now turns the other way).
  • v1.12.0 - T40: image.ae_compensation and image.max_again, on the vendor and the OpenIMP libimp.
  • v1.12.0 - calmer dawns: day/night skips IR looks that cannot find day and judges a creeping light with what the last check measured: about half the morning IR looks and fewer failed day checks.
  • v1.12.0 - always-on frame sources: general.fs_keepalive defaults to 1, so exposure and day/night keep working while nobody watches.

Endpoints

Defaults; ports and paths are configurable.

URLWhat
rtsp://<ip>:554/ch0main stream, video and audio
rtsp://<ip>:554/ch1sub stream
http://<ip>:8880/browser preview (fMP4 over MSE, with audio)
http://<ip>:8880/stream.mp4fragmented MP4 for ffplay / VLC
http://<ip>:8880/snapshot.jpglatest JPEG
http://<ip>:8880/stream.mjpegMJPEG
http://<ip>:8880/controllive JSON control and status API
http://<ip>:8880/eventsserver-sent events: motion, day/night, stats
http://<ip>:8880/webrtc/whepWebRTC (WHEP), H.264 and G.711
wss://<ip>:8880/talkbrowser microphone to the camera speaker

Get it

timps ships as a thingino package.

make menuconfig   # Streamer Packages -> Streamer -> timps
make              # build the firmware, flash as usual

Building by hand, every USE_* switch and the simulator: see Building. For the open camera stack it runs on, see OpenIMP.

TIMPS mascot

Documentation

Searchable, built from the wiki in the repository. Open the docs.