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 (Lyodra/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 memilih stream untuk membuka playback rekaman, menelusuri rekaman berdasarkan tanggal (Daily Playback), serta menghapus rekaman yang sudah tidak dibutuhkan. Sistem membedakan stream yang terhubung dengan data NVR (sehingga playback dapat dilakukan di halaman penuh dengan konteks stream) dan stream yang diputar tanpa konteks NVR melalui halaman playback generik.
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 informasi status stream:
- Nama stream — identitas stream berdasarkan app dan name dari Media Server.
- Status Live — indikator apakah stream saat ini sedang aktif melakukan siaran langsung.
- Available — menandakan apakah tersedia arsip rekaman yang dapat diputar kembali.
- Recording — menandakan apakah fitur recording diaktifkan untuk stream ini.
Membuka Playback Rekaman
Pastikan Media Server sudah dipilih
Playback hanya dapat dilakukan setelah Anda memilih Media Server dari dropdown di bagian atas. Tombol aksi pada baris tabel akan aktif setelah server dipilih.
Klik aksi pada baris stream
Pada setiap baris stream, tersedia beberapa pilihan aksi:
- Lihat Rekaman — membuka halaman playback untuk stream tersebut. Jika stream memiliki data NVR yang cocok, sistem akan membuka halaman playback penuh dengan konteks node dan stream ID. Jika tidak ada data NVR yang cocok, sistem akan membuka halaman playback generik.
- Daily Playback — membuka halaman pemutaran berdasarkan kalender harian, memungkinkan Anda memilih tanggal dan jam rekaman secara spesifik menggunakan timeline scrubber.
- Navigasi ke Stream — membuka halaman detail stream di
/stream/{nodeNumber}/{streamId}(hanya tersedia jika stream memiliki data NVR yang cocok). - Hapus Rekaman — membuka dialog konfirmasi untuk menghapus seluruh file rekaman stream tersebut dari Media Server.
Gunakan Daily Playback untuk rekaman historis
Jika Anda ingin memutar rekaman pada tanggal atau jam tertentu, gunakan aksi Daily Playback. Halaman ini menampilkan kalender bulanan dengan indikator hari yang memiliki rekaman, serta timeline per jam untuk navigasi yang lebih presisi.
Format URL Daily Playback:
/media-servers/recorded-streams/{nvrServerId}/daily-playback?app={app}&name={name}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.
Dua Mode Playback
Sistem secara otomatis memilih halaman playback yang tepat: playback penuh dengan konteks NVR jika data stream ditemukan, atau playback generik jika tidak ada data NVR yang cocok.
Daily Playback dengan Timeline
Navigasikan rekaman historis menggunakan kalender bulanan dan timeline scrubber per jam — cocok untuk investigasi kejadian pada tanggal dan waktu tertentu.
Indikator Status Stream
Setiap stream ditampilkan dengan tiga indikator status: live (sedang siaran), available (ada rekaman), dan record (recording aktif) — memudahkan operator memahami kondisi stream sekilas.
Navigasi Langsung ke Stream
Untuk stream yang terhubung dengan data NVR, Anda dapat langsung membuka halaman detail stream dari daftar rekaman tanpa perlu mencari secara manual di halaman Streams.
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 header
Authorization: Bearer <Token>. Lihat Otentikasi untuk cara mendapatkan Token.
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 "Authorization: Bearer <Token>"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 "Authorization: Bearer <Token>"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 "Authorization: Bearer <Token>"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 "Authorization: Bearer <Token>"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 "Authorization: Bearer <Token>"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.