Record without transcoding
RTSP cameras, H.264/H.265, recording retention and export through Frigate.
Atmovio 5 · Open source · Raspberry Pi 5
Atmovio records your IP cameras, uses AI to follow the changing sky and turns interesting moments into video. From the first image to YouTube, in one administration.
Free software. Recordings at home. Your choice of AI provider.
One path from camera to video
Recording works without cloud AI.
Clouds, light, storms and changes over time.
Your provider, rules and daily limit.
MIT licence, REST API and webhooks.
RTSP cameras, H.264/H.265, recording retention and export through Frigate.
ONVIF discovery, live previews and remote cameras over WireGuard.
Image collection and full-sequence evaluation run separately. Inspect the images AI received.
Selected phenomena, camera-specific thresholds and notification intervals. Email and webhooks.
Connect adjacent AI films, set a fixed clip up to 120 minutes or select an exact time range.
A separate time-lapse score. Speed, intro, music and editable titles and descriptions.
Storage status, diagnostics, newest-first logs and updates with a completion result.
An AI film is a time-ordered set of photographs. Choose the sampling interval and collection duration; AI evaluates the whole sequence when it is complete.
Each camera has its own film. Set the interval, duration and image limit.
AI describes phenomena, development and time-lapse interest. You can inspect its source images.
Phenomena and time-lapses have separate criteria. A failed notification does not block a clip from an AI film.
An event at the end of a film can continue into the next. Bounds depend on available images and recordings.
AI FILM
Sampling interval, image count and film duration side by side. The preview shows what AI will receive.
Example: one image every 5 minutes → 9 images across 40 minutes → one evaluation per camera.
A shorter interval helps capture fast changes. More images can mean less detail per image. AI can make mistakes.
Choose the time range, set the speed and add your own style. Studio prepares the video and editable publishing details.
Use the detection, a fixed duration or exact start and end times. The source recording must be available.
10–240× speed, your intro, on-screen text and music from Openverse or your own file.
Edit the title and description derived from AI evidence. Studio also flags skipped optional elements.
Download MP4 or upload to your connected YouTube channel. Enable automation when you want it.
YouTube requires a Google OAuth connection. Upload availability depends on your project settings and quota.
Raspberry Pi 5, IP cameras and a recording disk. Capacity depends on resolution, bitrate and the other tasks running on your device.
| Board | Raspberry Pi 5, 4 GB min., 8 GB recommended |
|---|---|
| System | Raspberry Pi OS Lite 64-bit on SSD or SD card |
| Recordings | USB 3 hard drive. Mbit/s of all cameras × 10.8 ≈ GB per day |
| Power | Official 27 W supply, active cooler |
| Network | Wired Ethernet. Remote cameras over WireGuard |
| Cameras | Any RTSP camera (H.264/H.265), ONVIF preferred |
Prepare Raspberry Pi OS Lite 64-bit and a recording disk. Run the installer and finish setup in the web administration.
install.sh from the latest release and run it as root.http://<pi-ip>: cameras → disk → alerts → AI key.Plain HTTP by design: keep it in your LAN or behind a VPN. Never expose port 80 to the internet.
Installation guide →curl -fsSL -o install.sh https://github.com/VladimirVecera/atmovio/releases/latest/download/install.sh sudo bash install.sh
install.sh is in its root:git clone https://github.com/VladimirVecera/atmovio.git cd atmovio sudo bash install.sh
♥ Support the project
Server, cameras and AI credits cost money. Any amount helps – QR payment or bank transfer, no registration.
Atmovio is not a closed box. Status, cameras, snapshots, detections and videos are one GET away – and Home Assistant needs no custom component.
Sensors, camera entity and a phone notification with the picture – built-in REST integration, copy the YAML.
rest:
- resource: http://pi/api/v1/status
sensor:
- name: Atmovio disk used
value_template: "{{ value_json.storage.disk_pct }}"
Home Assistant YAML →
Status, cameras, snapshots, detections, videos and events as JSON with API keys. PHP scripts included.
GET /api/v1/status
GET /api/v1/cameras/zahrada/snapshot.jpg
GET /api/v1/detections?limit=5
GET /api/v1/videos
Authorization: Bearer at_…
API reference →
Atmovio pushes status every minute and every alert with its picture to your website. PHP receiver included.
POST https://your-site/webhook.php
{"kind": "sky", "score": 9,
"phenomena": ["cervanky"],
"image": "<base64 jpeg>"}
Webhook docs →
Made by Vladimír Večeřa for his own roof. MIT license. The admin is in Czech for now, the docs are in English and Czech – contributions welcome.
Time-ordered images from one camera. In completed-film mode, AI evaluates them after collection ends. It is not a video sent to the provider.
Yes. It also assesses cloud-layer motion, growth, dissipation and light changes. Automatic clips can use an independent time-lapse score threshold.
Adjacent observations can form a continuing event. Fixed-length clips follow the configured limit; you can also adjust the exact range manually.
Atmovio is free. Providers set model availability, pricing and any free tiers. You use your own key and can set a daily request limit.
Cloud AI receives selected images or a composed image sheet and instructions. Videos go to YouTube when you start an upload or enable automation. Webhooks send the data you enable.
Local recording and administration do. Cloud AI, YouTube and internet notifications need a connection. Ollama can run locally or on your own server.
No. Results depend on the model, image quality and sampling interval. AI can miss or misidentify phenomena; this is not a weather warning system.
Combined camera bitrate in Mbit/s × 10.8 approximately gives GB per day of continuous recording. Allow extra space for exports and finished videos.
Use a VPN such as WireGuard. Do not expose the home-network administration directly to the internet.