Liodra
Media server dan NVR dari Nodeflux: ingest RTSP/RTMP tanpa batas kamera, rekaman DVR, playback berbasis waktu, dan distribusi ulang stream untuk Visionaire dan Lenz.
Liodra (Live Video Orchestration and Delivery with Recording Architecture) adalah media server dan NVR yang dikembangkan Nodeflux. Liodra menarik stream dari kamera RTSP, sumber RTMP, file video, atau live stream media sosial; mem-publish-nya kembali lewat RTMP, RTSP, dan HTTP-TS; merekamnya ke disk dalam segmen 30 detik; dan menyediakan playback berbasis waktu beserta kebijakan retensi, semuanya lewat satu REST API di port 9080.
Di dalam platform Nodeflux, Liodra adalah backend yang muncul di Lenz sebagai Visionaire Media (Media Server bertipe srs). Ketika operator membuka Recorded Streams, Playback, atau Video Management di Lenz, yang bekerja di baliknya adalah Liodra.
Halaman ini memberi gambaran umum. Untuk menjalankan Liodra, mulai dari Instalasi. Untuk memahami bagaimana Lenz dan Visionaire memakainya, baca Integrasi dengan Lenz & Visionaire. Referensi endpoint ada di halaman API Reference tiap fitur.
Apa yang Dilakukan
- Ingest tanpa batas kamera. Setiap sumber didaftarkan sebagai device dan ditarik oleh satu proses ingest terisolasi yang dipantau, di-restart otomatis dengan backoff, dan disuspensi bila sumbernya mati. Tidak ada batas lisensi; batasnya adalah CPU, disk, dan jaringan.
- Distribusi ulang stream. Setiap stream yang masuk langsung tersedia lewat RTMP (
1935), RTSP (8554), dan HTTP-TS (/api/v1/play/ts/...), sehingga satu kamera dapat dikonsumsi Visionaire, Lenz, dan pemutar lain tanpa membebani kamera dengan banyak koneksi. - Rekaman DVR. Stream pada channel yang merekam disimpan sebagai segmen 30 detik dengan nama file bertimestamp UTC, tanpa database.
- Playback berbasis waktu. Minta
startdanduration, dapatkan MPEG-TS yang digabung dari segmen yang tepat, atau unduh sebagai MP4. HEVC dapat di-transcode ke H.264 untuk browser. - Retensi otomatis. Kebijakan per channel dengan durasi, kuota disk, dan jendela jam; cleanup harian terjadwal dan cleanup darurat saat disk hampir penuh.
- Video on Demand. Unggah file video secara chunked (dengan resume), beri waktu rekam nyata, dan putar berulang sebagai stream untuk pengujian atau analisis ulang footage lama.
- Broadcast real-time. Siarkan gambar dan koordinat GPS dari perangkat mobile ke klien WebSocket.
Yang TIDAK Dilakukan
- Tidak menjalankan analitik AI. Liodra hanya mengelola video. Deteksi dan pengenalan adalah tugas Visionaire; Liodra menjadi sumber stream yang stabil untuknya.
- Tidak memiliki antarmuka operator lengkap. Liodra menyediakan dashboard monitor teknis di port
8080, tetapi alur kerja operator (playback dengan timeline, unduh klip, manajemen server) ada di Lenz. - Tidak mengautentikasi REST API. Semua endpoint
/api/v1/*terbuka; batasi akses lewat jaringan atau reverse proxy. Satu-satunya otentikasi bawaan adalah token untuk publish/play RTMP (RTMP_SECRET).
Konsep Inti
- Device adalah sumber yang ditarik Liodra. Identitasnya
channel/name; URL hanyalah atribut yang dapat diubah lewatPATCH. Scheme device:rtsp,rtmp,file, atauhttp/httpsuntuk media sosial. - Channel adalah namespace stream, boleh bertingkat (
live,live/hls,live/mobile). Channel biasa (live/*dan lainnya) direkam; channelvod(file yang diputar berulang) danvop/*(media sosial) tidak direkam. - Stream adalah
channel/nameyang sedang dipublish, baik oleh device Liodra maupun klien RTMP eksternal yang mem-publish langsung. - Segment adalah satu file rekaman 30 detik di
recordings/{channel}/{name}/YYYY/MM/DD/HH-mm-ss.flv(UTC). Playback menggabungkan segmen; distribusi harian dan per jam dihitung dari segmen yang benar-benar berisi media. - Backend adalah sistem penyimpanan di balik API. Backend standar (nilai
srs, default produksi) merekam sendiri; backend Hikvision (prototipe) meneruskan penemuan rekaman dan playback ke NVR Hikvision dengan API yang sama.
Cara Kerja
- Tambah device lewat
POST /api/v1/devices/{scheme}. Liodra menjalankan proses ingest yang menarik sumber dan mem-publish-nya sebagai stream{channel}/{name}(tanpa re-encode untuk H.264 maupun HEVC; audio diganti track senyap kecuali diminta sebaliknya). - Media engine menerima publish, memvalidasi token bila
RTMP_SECRETdiset, lalu menyajikan stream ke penonton dan, untuk channel yang merekam, menulis segmen DVR ke disk. - Health loop memeriksa status publish setiap device tiap 5 detik. Device yang macet di-restart dengan grace period, backoff eksponensial, dan batas restart bersamaan; device yang prosesnya keluar berulang disuspensi dan diperiksa ulang secara berkala.
- Klien meminta playback: Liodra memilih segmen yang menutupi jendela
start+duration, menggabungkannya tanpa re-encode, dan mengalirkan MPEG-TS (atau MP4 untuk unduhan). Setiap request on-demand memakai satu proses media dan dibatasiMAX_ONDEMAND_PROCESSES. - Retensi berjalan tiap hari pada jam yang dijadwalkan dan pada heartbeat menit-an bila pemakaian disk melampaui
MAX_DISK_USAGE.
Peta Dokumentasi
Instalasi
Menjalankan Liodra dengan Docker: image, flag fitur (--as-nvr, --with-vod, --broadcast-on), port, volume, dan verifikasi.
Konfigurasi
Referensi environment variable, tata letak direktori storage, recordings.yaml dan retentions.yaml.
Integrasi dengan Lenz & Visionaire
Mendaftarkan Liodra sebagai Media Server di Lenz, pemetaan endpoint Lenz ke Liodra, dan memakai stream Liodra sebagai sumber Visionaire.
Devices
Menambah kamera RTSP, sumber RTMP, file, dan media sosial; siklus status, auto-restart, dan suspensi.
Live Streaming
Menonton lewat HTTP-TS, RTMP, dan RTSP; transcode HEVC; memantau koneksi klien; otentikasi RTMP.
Recordings & Playback
Struktur rekaman DVR, penemuan rekaman (harian/per jam), playback berbasis waktu, dan unduhan MP4.
Retention
Kebijakan retensi per channel, kuota disk, jendela jam, cleanup terjadwal dan darurat.
Video on Demand
Unggah chunked dengan resume, waktu rekam nyata, thumbnail, dan playback video unggahan.
Broadcast
Siaran gambar dan GPS ke klien WebSocket dengan routing channel bertingkat.
Monitoring
Health, versi, dashboard monitor, metrik proses ingest, dan WebSocket monitoring.
Ingest Transcode (Eksperimental)
Re-encode kamera ke HEVC pada ingest dengan GPU terintegrasi Intel/AMD untuk menghemat storage.