Building an IP Network Camera
summary
A working IP camera streams at about 45 fps using Beaglebone + PRU real-time capture feeding a C external port that JPEG-encodes frames with motion JPEG via libjpeg-turbo; observed median end‑to‑end latency around 50–75 ms (examples at 71 ms) and steady RAM ≈28 MB. The cross‑compile image is ~18 MB rootfs, boot-to‑Erlang prompt ≈1.37 s (bare VM ≈270 ms), and a nerves buildroot image + relsync workflow lets fast iterative updates; the system runs reliably.
AI-written summary · about
chapters (26)
- 0:00Introduction
- 1:51Calibration
- 2:10Embedded languages
- 3:43Camera
- 7:29Constraints
- 8:49Hardware Overview
- 10:53Wires
- 13:37Streaming
- 16:57Motion JPEG
- 17:46How it works
- 19:44Demo
- 21:21Plumbing
- 21:34Nerves
- 25:44SD Card
- 28:18Rsync
- 31:14ErlangNet
- 32:04throughput
- 32:47jpeg encoding
- 33:28latency
- 35:02serial
- 35:53latency analysis
- 37:24boot time
- 40:01dram usage
- 41:15file system usage
- 44:30GitHub
- 46:15Outro
related talks
34mExtending Libcamera to Provide a Fully Open Camera SoftISP Stack
34mBuilding an IoT-class Device
42mSoftware ISP FOSS Support for MIPI Cameras
52mBuilding Custom Firmware for an IP Camera in Rust
43mGrabbing Audio and Video on a Board Farm
23mTowards Battery-Free HD Video Streaming
30mQuick booting a software defined rear view camera
40mThe Everything App
