Learn/Disco PartyRemade with Rust

rusty_esp_video — An ESP32 Camera That Does Not Phone Home

rusty_esp_video remakes esp_video, esp_h264, and CameraWebServer: MJPEG and H.264 on the chip, RTP and MJPEG-over-HTTP, no vendor camera cloud.

Signed by M·
Close-up of a camera lens glass with concentric rings of reflection
What is rusty_esp_video?

rusty_esp_video remakes the ESP32 camera path: MJPEG and H.264 on the chip, RTP and MJPEG-over-HTTP, with no vendor camera cloud.

🪩 The Disco Party is MATA's distributed cloud.

rusty_esp_video is CameraWebServer remade. The repo is rusty_esp_video. Espressif's esp_video / esp_h264 stack and the ESP32-CAM sketch every tutorial copies are C bitstream parsers sitting on an HTTP server. A hallway that still dumps JPEG to a vendor cloud is not a Home Companion. It is a viewing booth with a product name.

This crate is MJPEG and H.264 encode through rusty_h264 embedded, RTP and MJPEG-over-HTTP packetizers, and a wrap around the ESP32-P4 hardware encoder. The core is no_std. Janus names the stream as the media ALPN. esp32 iroh is how that stream leaves the board without AWS IoT.

Why An ESP32 Camera Cannot Keep A C HTTP Server

CameraWebServer exists to sell modules. It also exists as a CVE farm: multipart JPEG, RTP headers, H.264 NAL parsing, all in C, all on a part with 512 KB of SRAM if you are lucky. The NIST Secure Software Development Framework wants memory-safe languages for parsers that face a network. rusty_esp_video is that want as a doorbell.

Trust is mID on the chip — only a granted peer sees the stream. Security is sealed frames on esp32 iroh, not an open /stream URL the whole LAN can refresh. Incentive is a home that can store clips as files and get paid for spare disk, instead of a camera SKU that invoices you to watch your own porch. The Electronic Frontier Foundation has the consumer-camera file. This crate takes that file seriously.

Sibling stills are rusty_esp_image: esp32-camera and esp_jpeg remade, DMA frame pools, JPEG/PNG through rusty_jpeg and rusty_png.

How rusty_esp_video Encodes Without A Vendor Cloud

Borrowed frames. Caller-owned memory. rusty_esp_core forbids Vec<Vec<u8>> storms on the tick. Sources write into caller buffers; the encoder reads views. RGB565 and YUYV are in the pixel vocabulary because doorbells speak those, not only I420.

MJPEG And H.264 On The Same Memory-Safe Path

MJPEG-over-HTTP is how a browser preview works on the LAN. H.264 in RTP is how a Home Computer records without melting the radio. rusty_esp_video packetizes both. The P4 wrap is for the part that already has a hardware encoder — you do not pretend a C6 is a P4.

The Stream Is A Grant, Not A Port

CameraWebServer listens. rusty_esp_video answers a capability. Capability tokens are how the distributed cloud authorizes a fetch. A default password on a sticker is not a grant. The NIST Zero Trust Architecture includes the camera.

Remade Primitives, Disco Party, Digital Freedom

rusty_esp_video, rusty_esp_image, rusty_h264, and esp32 iroh are Remade-With-Rust primitives. They become a disco party when a camera is a peer on the mesh, not a SKU in a vendor archive. They become Digital Freedom when Trust, Security, and Incentive — identity, encryption, payouts — sit on the sensor. Start at the Disco Party and Remade with Rust. Flash a camera that does not phone home through dldeploy.

The amateur sketch that grabs the frame is secure and easy Arduino. The mesh under that camera is esp32 iroh. The still path is on the same catalog card wall as rusty_esp_image. Audio on the same board is rusty_esp_audio. The household product is Era 4: Home Companion.

FAQ

Short answers already in this article.

Does rusty_esp_video upload camera frames to a vendor cloud?

rusty_esp_video is CameraWebServer remade so a hallway does not dump JPEG to a vendor cloud. MJPEG and H.264 stay on the chip. esp32 iroh carries the stream off the board without AWS IoT, and Janus names it as the media ALPN.

How does rusty_esp_video send MJPEG and H.264 off the board?

MJPEG-over-HTTP is the browser preview on the LAN. H.264 in RTP is how a Home Computer records without melting the radio. rusty_esp_video packetizes both. Encode goes through rusty_h264 embedded, plus a wrap of the ESP32-P4 hardware encoder.

Does rusty_esp_video pretend an ESP32-C6 is an ESP32-P4?

The P4 wrap is for the part that already has a hardware encoder. You do not pretend a C6 is a P4. The core is no_std. Sources write into caller buffers, the encoder reads views, and RGB565 and YUYV are in the pixel vocabulary.

Who can watch a live rusty_esp_video camera stream?

Trust is mID on the chip: only a granted peer sees the stream. Security is sealed frames on esp32 iroh, not an open /stream URL the whole LAN can refresh. A default password on a sticker is not a grant.

What still-image crate sits beside rusty_esp_video?

rusty_esp_image remakes esp32-camera and esp_jpeg: DMA frame pools, and JPEG or PNG through rusty_jpeg and rusty_png. That still path is the sibling of the rusty_esp_video stream.