Recorded Streams
Lihat daftar stream yang sedang atau sudah direkam di Media Server — pilih stream untuk playback, filter berdasarkan channel, dan kelola rekaman langsung dari satu halaman.
Pengenalan
Halaman Recorded Streams (/media-servers/recorded-streams) menampilkan seluruh stream yang memiliki rekaman tersimpan di Media Server (Liodra, di Lenz disebut Visionaire Media). Setiap entri dalam daftar merepresentasikan satu stream — bisa berupa kamera yang sedang aktif merekam secara langsung (live), maupun stream yang hanya memiliki arsip rekaman historis tanpa siaran aktif saat ini.
Dari halaman ini, operator dapat menelusuri rekaman berdasarkan tanggal lewat Daily Playback, membuka detail stream (untuk stream yang cocok dengan data NVR di Lenz), serta menghapus rekaman yang sudah tidak dibutuhkan.
Kecuali Anda superadmin, tabel ini hanya menampilkan rekaman yang cocok dengan Stream yang sudah terdaftar di Lenz. Rekaman yang ada di Media Server tetapi belum/tidak punya Stream terkait di Lenz disembunyikan dari akun non-superadmin.
Bagi integrator, seluruh data rekaman dapat diakses melalui REST API pada endpoint /api/visionaire-media/{nvrServerId}/recordings. Endpoint ini mendukung mode Federation untuk deployment multi-instance dan bekerja dengan backend SRS maupun Hikvision.
Halaman ini memerlukan permission RBAC RECORDED_STREAMS. Jika menu tidak muncul, hubungi administrator sistem untuk mengatur hak akses yang sesuai.
Cara Menggunakan
Melihat Daftar Recorded Streams
Pilih Media Server
Di bagian atas halaman, gunakan dropdown Media Server untuk memilih server NVR yang ingin Anda telusuri. Sistem akan memuat seluruh daftar rekaman dari server yang dipilih. Jika belum ada server yang terdaftar, tabel tidak akan menampilkan data — pastikan Media Server sudah dikonfigurasi terlebih dahulu di halaman pengaturan.
Filter dan cari stream
Setelah server dipilih, gunakan filter berikut untuk mempersempit daftar:
- Channel — pilih channel tertentu dari dropdown untuk menampilkan hanya stream pada channel tersebut. Pilih All channels untuk melihat semua channel.
- Active streams only — centang checkbox ini untuk menampilkan hanya stream yang saat ini sedang aktif siaran (live), menyembunyikan stream yang hanya memiliki rekaman historis.
- Search — ketik nama atau sebagian nama stream di kotak pencarian untuk memfilter daftar secara real-time.
Semua pilihan filter akan otomatis disinkronkan ke URL halaman sebagai query parameter, sehingga Anda dapat menyalin dan membagikan link dengan filter yang sudah aktif.
Baca informasi rekaman
Setiap baris tabel menampilkan:
- Nama — identitas stream berdasarkan
namedari Media Server. Jika stream ini cocok dengan Stream yang terdaftar di Lenz, namanya tampil sebagai link biru yang bisa diklik untuk membuka detail Stream tersebut; jika Stream sudah dihapus dari Lenz namun rekamannya masih ada, muncul keterangan "stream dihapus". - Channel — nilai
appdari Media Server, misalnyalive. - Live Status — badge Online jika stream saat ini sedang aktif melakukan siaran langsung, Offline jika tidak.
- Recording — badge Enabled/Disabled, menandakan apakah fitur recording diaktifkan untuk stream ini.
Membuka Rekaman
Pastikan Media Server sudah dipilih
Aksi pada baris tabel hanya aktif setelah Anda memilih Media Server dari dropdown di bagian atas.
Gunakan ikon aksi pada baris stream
Setiap baris menyediakan dua ikon aksi:
- Ikon kalender (Daily Playback) — membuka Daily Playback: kalender bulanan dengan indikator hari yang memiliki rekaman, plus timeline per jam untuk memutar rekaman pada waktu tertentu. Ini adalah cara utama membuka rekaman dari halaman ini.
- Ikon tong sampah (Hapus Rekaman) — membuka dialog konfirmasi untuk menghapus seluruh file rekaman stream tersebut dari Media Server. Ikon ini tidak muncul untuk server berbackend Hikvision, karena rekaman di Hikvision dikelola langsung oleh perangkat NVR, bukan oleh Lenz.
Jika nama stream tampil sebagai link (lihat langkah sebelumnya), mengkliknya membuka halaman detail Stream (/stream/{nodeNumber}/{streamId}) — bukan halaman playback. Dari halaman detail Stream itulah Anda melihat status perekaman terkini stream tersebut.
Aksi Hapus Rekaman akan menghapus seluruh file rekaman stream tersebut secara permanen dari Media Server. Tindakan ini tidak dapat dibatalkan. Pastikan rekaman yang ingin dihapus tidak lagi dibutuhkan sebelum melanjutkan.
Fitur Utama
Filter Multi-dimensi
Filter daftar rekaman berdasarkan channel, status aktif stream, dan pencarian nama — semua filter tersinkronkan ke URL sehingga dapat dibagikan langsung.
Daily Playback dengan Timeline
Ikon kalender di setiap baris langsung membuka Daily Playback: kalender bulanan dan timeline scrubber per jam — cocok untuk investigasi kejadian pada tanggal dan waktu tertentu.
Indikator Status Stream
Setiap stream ditampilkan dengan badge Live Status (Online/Offline) dan Recording (Enabled/Disabled) — memudahkan operator memahami kondisi stream sekilas.
Navigasi Langsung ke Stream
Untuk stream yang terhubung dengan data NVR, klik nama stream untuk langsung membuka halaman detail stream tanpa perlu mencari secara manual di halaman Streams.
Delete Disembunyikan untuk Hikvision
Aksi Hapus Rekaman otomatis tersembunyi untuk server berbackend Hikvision, karena rekaman di server tersebut dikelola oleh perangkat NVR itu sendiri, bukan oleh Lenz.
Federation Support
Dalam deployment multi-instance, gunakan parameter instance untuk mengakses rekaman dari instance Visionaire tertentu. Pilihan instance diteruskan ke seluruh navigasi playback.
API Reference
Semua endpoint memerlukan otentikasi. Untuk integrasi, kirim header
X-Api-Key: <key>di setiap request tanpa headerAuthorization. Bearer token (Authorization: Bearer <access_token>, berlaku 30 menit) hanya untuk aplikasi yang menampilkan login Lenz kepada penggunanya sendiri. Lihat Otentikasi untuk detail lengkap.
GET /api/visionaire-media/{nvrServerId}/recordings
Mengambil daftar seluruh stream beserta status rekamannya dari Media Server yang ditentukan. Endpoint ini mendukung backend SRS maupun Hikvision.
Path Parameters:
| Parameter | Tipe | Keterangan |
|---|---|---|
nvrServerId | number | ID numerik Media Server yang terdaftar di sistem. |
Query Parameters:
Prop
Type
curl -X GET "${API_URL}/api/visionaire-media/1/recordings" \
-H "X-Api-Key: <api-key>"Contoh respons:
{
"success": true,
"data": {
"total": 3,
"recordings": [
{
"app": "live",
"name": "kamera-lobby-utama",
"live": true,
"available": true,
"record": true
},
{
"app": "live",
"name": "kamera-parkir-b",
"live": false,
"available": true,
"record": false
},
{
"app": "live/IPCamera 01",
"name": "ch01_stream01",
"live": true,
"available": false,
"record": true
}
]
}
}Keterangan field RecordingItem:
Prop
Type
DELETE /api/visionaire-media/{nvrServerId}/recordings/{path}
Menghapus seluruh file rekaman untuk stream tertentu dari Media Server. Tindakan ini bersifat permanen dan tidak dapat dibatalkan.
Path Parameters:
| Parameter | Tipe | Keterangan |
|---|---|---|
nvrServerId | number | ID numerik Media Server. |
path | string | Path stream dalam format {app}/{name} (contoh: live/kamera-lobby). |
Query Parameters:
Prop
Type
curl -X DELETE "${API_URL}/api/visionaire-media/1/recordings/live/kamera-lobby-utama" \
-H "X-Api-Key: <api-key>"Respons sukses:
{
"success": true,
"message": "Recording deleted successfully"
}GET /api/visionaire-media/{nvrServerId}/recordings/{path}/daily
Mengambil distribusi rekaman harian untuk keperluan date picker. Endpoint ini mengembalikan informasi hari mana saja dalam rentang bulan yang memiliki rekaman tersedia.
Path Parameters:
| Parameter | Tipe | Keterangan |
|---|---|---|
nvrServerId | number | ID numerik Media Server. |
path | string | Path stream dalam format {app}/{name}. |
Query Parameters:
Prop
Type
curl -X GET "${API_URL}/api/visionaire-media/1/recordings/live/kamera-lobby-utama/daily?search=0126-0426" \
-H "X-Api-Key: <api-key>"Contoh respons:
{
"success": true,
"data": [
{
"year": 2026,
"month": 4,
"days": [
{ "day": 28, "available": true, "date": "2026-04-28" },
{ "day": 29, "available": true, "date": "2026-04-29" },
{ "day": 30, "available": false, "date": "2026-04-30" }
]
}
]
}GET /api/visionaire-media/{nvrServerId}/recordings/{path}/hourly
Mengambil distribusi rekaman per jam untuk satu hari tertentu. Digunakan oleh timeline scrubber pada halaman Daily Playback untuk menampilkan rentang menit yang memiliki rekaman.
Query Parameters:
Prop
Type
curl -X GET "${API_URL}/api/visionaire-media/1/recordings/live/kamera-lobby-utama/hourly?date=2026-04-28" \
-H "X-Api-Key: <api-key>"Contoh respons:
{
"success": true,
"data": {
"date": "2026-04-28",
"hours": [
{
"hour": 8,
"minute": 0,
"available": true,
"duration": 3600,
"time": "08:00",
"ranges": [
{ "start": "08:00", "end": "08:59" }
]
},
{
"hour": 9,
"minute": 0,
"available": false,
"duration": 0,
"time": "09:00",
"ranges": []
}
]
}
}GET /api/nvr-servers
Mengambil daftar seluruh Media Server (NVR Server) yang terdaftar di sistem. Endpoint ini digunakan untuk mengisi dropdown pemilihan server di halaman Recorded Streams.
Query Parameters:
Prop
Type
curl -X GET "${API_URL}/api/nvr-servers" \
-H "X-Api-Key: <api-key>"Contoh respons:
{
"ok": true,
"data": [
{
"id": 1,
"name": "NVR Gedung A",
"host": "http://192.168.1.100",
"type": "srs",
"api_port": "9080",
"playback_port": "9080",
"created_at": "2026-01-10T08:00:00Z",
"updated_at": "2026-04-01T12:00:00Z"
}
]
}Tips & Troubleshooting
Selanjutnya
Playback
Putar kembali rekaman stream tertentu dengan kontrol waktu dan navigasi segmen rekaman.
Daily Playback
Telusuri rekaman historis menggunakan kalender bulanan dan timeline scrubber per jam untuk navigasi presisi.
Media Servers
Daftarkan dan kelola Media Server (NVR) yang digunakan untuk menyimpan rekaman dan menayangkan stream.
Manajemen Server
Daftarkan, kelola, dan uji koneksi Media Server (NVR) — tambah server baru, edit konfigurasi host dan port, serta hapus server yang tidak lagi digunakan dari satu halaman terpusat.
Playback Rekaman
Putar ulang rekaman kamera per segmen dari Media Server — pilih waktu, telusuri daftar rekaman, unduh footage, dan akses stream Playback melalui API untuk investigasi forensik.