CameraStack on the
Rockchip RV1106.
Ready-made camera software for the RV1106: capture, hardware encode, RTSP streaming and a standards-compliant ONVIF interface, integrated directly against Rockchip's RKMPI media pipeline.
The silicon
Inside the
RV1106.
A highly integrated vision SoC for IPC and edge-AI cameras: an Arm application core, a neural engine, and a 5-megapixel ISP and hardware video pipeline, with the DRAM in the package.
- CPU
- Cortex-A7, 1.2 GHz
- single core, NEON + FPU
- AI engine
- 1 TOPS
- INT4 / INT8 / INT16 NPU
- ISP
- Up to 5 MP @ 30 fps
- 2-lane MIPI CSI
- Video encode
- H.264 & H.265
- 5 MP @ 30 fps, plus JPEG
- Memory
- 256 MB DDR3L
- in-package (RV1106G3)
On this silicon
What runs today.
- 01 Sensor capture through Rockchip AIQ, ISP and video input
- 02 Dual hardware profiles: 1080p and 640x360, H.264 or H.265 per profile
- 03 The full RTSP transport family: TCP, UDP, HTTP tunnelling, WebSocket and multicast
- 04 ONVIF Device, DeviceIO, Media, Media2, Events, Imaging and Analytics services
- 05 Polygon motion detection: ONVIF MotionRegionDetector rules on the RV1106 IVS activity grid
- 06 NPU object detection with tracked ONVIF scene metadata and live model selection
- 07 Imaging control wired to the ISP: brightness, contrast, saturation, sharpness, exposure, gain, white balance and backlight compensation
- 08 JPEG snapshots and four-slot text OSD with transparency
- 09 Live encoder control: frame rate, bitrate and GOP changes mid-stream, codec swaps in place, on-demand keyframes
- 10 Demand-driven encoding: each hardware encoder runs only while clients consume its profile
- 11 Metadata streaming and events, including the ONVIF ImageTooDark tampering event
How this port works
The RV1106 has no CameraStack GStreamer dependency; its camera and encoder are reached through Rockchip’s RKMPI SDK. CameraStack handles platforms like this with a C producer: a compact native adapter, written in C straight against RKMPI and Rockchip’s AIQ libraries, that owns the vendor media pipeline from sensor to hardware encoder and hands encoded video to the portable core. The Go server is statically built for the board’s ARMv7 uClibc environment and does not link the vendor SDK.
Control flows the other way too. Because the producer owns the encoder, settings changed through ONVIF are applied live: frame rate, bitrate and GOP change mid-stream, a codec change rebuilds only the selected VENC channel while the sensor, ISP and sibling stream keep running, and synchronisation-point requests map to on-demand IDR keyframes. Encoding is demand-driven per profile: each hardware encoder runs, and draws power, only while clients consume its stream, while the resident pipeline keeps snapshots, motion events and object metadata flowing with both video encoders idle. The proven profiles are 1080p at up to 25 fps and 640x360 at up to 10 fps, each selectable between H.264 High and H.265 Main.
Analytics, Imaging and OSD
The Analytics service runs ONVIF MotionRegionDetector rules: up to four named polygons, each with its own sensitivity and damping. The RV1106’s IVS block measures a 30x17 activity grid over a 960x540 analysis channel, and CameraStack rasterises arbitrary ONVIF polygons onto it, so motion detection never scans full video frames on the CPU and keeps running while both video encoders are idle.
Object detection runs on the RV1106’s NPU. The ObjectDetector analytics module advertises the models present on the device: the royalty-free portable PicoDet-S, YOLOX-Nano and PP-YOLOE-S, alongside a factory YOLOv5 detector where its artifact has been installed. CameraStack advertises only the models genuinely present and does not redistribute vendor detectors whose rights are not independently established, so a licensable model such as YOLOv5 is available only where it has been supplied for the device. A standard ONVIF client can switch the model, confidence threshold and 1 or 5 fps detection rate live. A model change replaces only the private RKNN context and buffers; the sensor, ISP, both encoders and the daemon stay resident. Detected objects are tracked with stable IDs and published as ONVIF scene metadata, and metadata-only clients can subscribe without waking a paused video encoder.
The Imaging service is wired to the ISP through AIQ: brightness, contrast and colour saturation, sharpness, automatic or manual exposure with manual exposure time and gain, automatic or manual white balance with independent red and blue gains, and backlight compensation. ImageTooDark is derived from AIQ’s exposure-normalised environment statistic, which survives a covered lens under both automatic and manual exposure.
JPEG snapshots come straight from the hardware at both profile resolutions, including while the video encoders are paused. Rockchip RGN provides four text OSD slots per profile with black or white foreground and background across the full transparency range, and the same OSD state is composited into the independent JPEG snapshots and survives paused encoders and codec replacement.
Built on the Rockchip RKMPI SDK
The producer builds against Rockchip’s RKMPI middleware and AIQ tuning libraries. Capture runs through VI, the video input module that owns the sensor and ISP; the main and sub channels feed VENC 0 and VENC 1, the hardware H.264, H.265 and JPEG encoders; the IVS block computes the motion activity grid in hardware; and RGA performs the colour conversion and resize that feed the object models on the RKNN NPU. The producer builds on the same shared common core as CameraStack’s other custom-SDK platforms, so framing, configuration, motion-grid mapping, event formatting, OSD rendering, pause state and the object-model decoders are well-tested portable code, with only small RV1106-specific customisations on top.
$ ffprobe rtsp://<user>:<pass>@rv1106.lan:8554/onvif/Profile_1
ffprobe version 7.1.5-0+deb13u1 Copyright (c) 2007-2026 the FFmpeg developers
...
Input #0, rtsp, from 'rtsp://<user>:<pass>@rv1106.lan:8554/onvif/Profile_1':
Metadata:
title : CameraStack Server (RV1106)
Duration: N/A, start: 0.159956, bitrate: N/A
Stream #0:0: Video: h264 (High), yuvj420p(pc, bt709, progressive), 1920x1080, 25 fps, 25 tbr, 90k tbn
Stream #0:1: Data: noneThe main profile runs at 1080p25. The probe's second track is the ONVIF metadata stream, carrying analytics and events alongside the video.
Build on it
Designing an
RV1106 product?
The port work is already done, at the level of the RKMPI SDK your board already has. Use CameraStack Server as your complete camera stack, or as a drop-in ONVIF interface for a pipeline you already have. Evaluation builds are available to teams building real products.
Talk to us about the RV1106