Streams
Kelola seluruh CCTV/stream yang terhubung ke sistem — pantau status, tambah, edit, dan kelompokkan ke site.
Pengenalan
Bayangkan setiap kamera CCTV di lapangan sebagai satu saluran siaran — stream adalah representasi digital dari saluran itu di dalam Visionaire. Satu stream = satu sumber video yang sedang diproses oleh sistem, baik itu kamera IP di parkiran, kamera lobby gedung, maupun siaran RTMP dari Media Server. Di ruang kendali, halaman Streams adalah papan monitor pusat tempat semua saluran itu terlihat sekaligus.
Halaman Streams adalah pusat manajemen seluruh kamera CCTV yang terhubung ke sistem Visionaire. Setiap stream merepresentasikan satu sumber video — baik kamera IP yang mengirim data via RTSP, maupun sumber RTMP dari Media Server — yang diproses oleh node Visionaire untuk menghasilkan event AI secara real-time. Dari halaman ini, operator dapat memantau status seluruh stream sekaligus, menambah kamera baru, mengedit konfigurasi yang sudah ada, dan mengatur pengelompokan berdasarkan lokasi.
RTSP (Real-Time Streaming Protocol) adalah protokol standar yang digunakan oleh sebagian besar kamera IP untuk mengirimkan video — hampir semua kamera CCTV modern mendukungnya. RTMP (Real-Time Messaging Protocol) umumnya dipakai ketika video diteruskan lewat Media Server sebelum sampai ke Visionaire.
Bagi integrator, semua operasi yang tersedia di UI juga dapat dilakukan melalui REST API. Endpoint Streams mendukung paginasi, filter multidimensi, mode Federation untuk deployment multi-instance, serta manajemen Tag untuk kategorisasi fleksibel.
Setiap stream diidentifikasi secara unik oleh kombinasi Node ID + Stream ID — mirip seperti nomor gedung dan nomor kamar: keduanya diperlukan untuk menemukan satu stream tertentu. node_id menunjukkan server Visionaire yang memproses stream, dan stream_id adalah pengenal unik stream di dalam node tersebut. Keduanya selalu dipakai berpasangan di URL maupun parameter API — misalnya GET /api/streams/:nodeId/:streamId.
Cara Menggunakan
Melihat Daftar Stream
Gunakan tampilan ini setiap kali Anda ingin memantau kondisi semua kamera secara sekilas — misalnya di awal shift jaga atau saat ada laporan insiden.
Buka halaman Streams
Navigasikan ke /streams dari sidebar. Secara default, tampilan menampilkan kartu besar (Large Card) dengan filter status Online — hanya stream yang sedang aktif yang ditampilkan.

Pilih mode tampilan
Klik ikon tampilan di toolbar untuk berganti mode visualisasi. Pilihan tersedia:
- Kartu Besar — preview video besar, cocok untuk memantau beberapa stream terpenting.
- Kartu Sedang / Kartu Kecil — lebih banyak stream sekaligus dalam satu layar.
- Tampilan Wall — grid tanpa jeda untuk video wall / control room, biasanya dipakai di layar besar.
- Tampilan Tabel — daftar dengan kolom Status, Alamat, Site, Pipeline; ideal untuk audit atau pencarian cepat.
- Tampilan Peta — penanda kamera di peta berdasarkan koordinat; berguna untuk memahami sebaran kamera secara geografis.
Pilihan tampilan dipertahankan antar kunjungan halaman.
Gunakan filter untuk mempersempit daftar

Toolbar filter di bagian atas menyediakan beberapa opsi:
- Cari — ketik nama stream untuk filter real-time.
- Status — Online, Offline, Nonaktif, atau Semua.
- Situs — saring berdasarkan site yang ditetapkan ke stream.
- Analitik — tampilkan hanya stream yang menjalankan analitik tertentu.
- Node — filter berdasarkan nomor node Visionaire.
- Tags — pilih satu atau beberapa tag; multi-tag menggunakan koma.
- Instance — (mode Federation) pilih instance spesifik atau biarkan kosong untuk agregasi semua instance.
Pahami arti status stream
Setiap kartu stream menampilkan nama, status, alamat, site, pipeline aktif, dan tag. Tabel di bawah menjelaskan arti masing-masing status:
| Status | Warna | Artinya | Penyebab Umum | Tindakan |
|---|---|---|---|---|
| Online | Hijau | Stream aktif dan diproses normal | — | Tidak diperlukan |
| Offline | Merah | Stream aktif tapi tidak dapat terhubung ke sumber video | Kamera mati, kabel putus, jaringan bermasalah, URL salah | Buka detail stream → tab Diagnostik |
| Nonaktif | Abu-abu | Stream sengaja dinonaktifkan dan tidak diproses | Toggle dimatikan saat menambah/mengedit stream, atau melalui Bulk Action | Aktifkan kembali via Edit Stream atau Bulk Actions |
Menambah Stream Baru
Lakukan ini setiap kali ada kamera baru yang dipasang di lapangan, atau ketika kamera lama dipindahkan ke node yang berbeda. Pastikan Anda sudah mengetahui alamat RTSP kamera sebelum memulai.
Klik tombol Tambah Stream
Tombol ini tersedia di toolbar kanan atas halaman /streams. Dialog form akan muncul.

Isi informasi dasar
Lengkapi field berikut:
Prop
Type
Form akan memvalidasi alamat duplikat secara otomatis — jika stream dengan URL yang sama sudah ada, peringatan dengan tautan ke stream existing akan muncul.
Konfigurasi opsional
- Site — tetapkan stream ke satu atau lebih site untuk pengelompokan. Ini memudahkan filter dan tampilan per lokasi.
- Tag — tambahkan tag bebas untuk kategorisasi (contoh:
outdoor,entrance,hd). Tag dapat digunakan untuk filter cepat. - Lokasi — atur koordinat latitude/longitude agar stream muncul di Tampilan Peta. Jika dikosongkan, lokasi default Jakarta akan digunakan.
- Aktifkan Stream — toggle ini menentukan apakah stream langsung diproses setelah disimpan. Nonaktifkan jika kamera belum siap.
- Konfigurasi Recording — jika Media Server tersedia, aktifkan recording untuk menyimpan video ke NVR. Recording Hikvision dikelola sistem Hikvision dan membutuhkan Media Stream dari server Hikvision.
Simpan
Klik Tambah Stream. Sistem akan mendaftarkan stream ke node yang dipilih. Jika Pipeline belum ada untuk analitik yang dipilih, sistem akan membuat Pipeline secara otomatis. Stream baru akan segera muncul di daftar.
Pastikan URL RTSP/RTMP dapat diakses dari jaringan node Visionaire — bukan hanya dari browser Anda. URL mungkin bisa dibuka di komputer Anda tetapi tidak dari server node karena perbedaan VLAN atau konfigurasi firewall. Jika stream gagal online setelah ditambahkan, gunakan fitur Diagnostik di detail stream untuk memeriksa konektivitas.
Detail Stream
Klik nama stream atau ikon info pada kartu untuk membuka halaman detail di /stream/:nodeId/:streamId. Halaman ini berguna bagi operator yang ingin memeriksa kondisi satu kamera secara mendalam, atau bagi teknisi yang sedang mendiagnosis masalah.

Halaman ini menampilkan:
- Live Preview — feed video langsung dengan overlay deteksi AI dari pipeline aktif. Tersedia toggle Tampilkan Analitik, Tampilkan Face Match, Tampilkan Visualisasi, dan Tampilkan Auto Search.
- Informasi Stream — Node ID, Stream ID, alamat, status, koordinat, dan konfigurasi transport.
- Pipeline Aktif — daftar analitik yang sedang berjalan pada stream ini, beserta sub-logika yang dikonfigurasi.
- Statistik — FPS aktual, resolusi frame, kualitas, dan histori aktivitas.
- Assignment — manajemen analitik: tambah atau hapus pipeline langsung dari halaman ini, atau buka halaman penuh
/assignment/:nodeId/:streamId. - Diagnostik — tab untuk menjalankan alat diagnosis konektivitas jaringan (lihat bagian Diagnostik Stream di bawah).
- Recent Events — panel di samping yang menampilkan event-event terbaru dari stream (FR/LPR/People/Vehicle), dengan auto-search opsional.
- Floorplan — daftar floorplan tempat stream ditempatkan (bila fitur Floorplan aktif).
- Aksi — tombol Edit Stream, Hapus Stream, dan Salin Alamat tersedia di panel detail.
Group by Site
Halaman ini sangat berguna bagi operator yang bertanggung jawab atas satu lokasi fisik tertentu — misalnya supervisor gedung A yang hanya ingin melihat kamera-kamera di gedungnya, bukan seluruh jaringan.
Akses /streams/site untuk melihat stream yang dikelompokkan berdasarkan site. Sidebar kiri menampilkan daftar site; klik site tertentu untuk membuka /streams/site/:siteId yang hanya menampilkan stream dari site tersebut.

Skenario penggunaan: Sebuah operator keamanan bertugas memantau Gedung Kantor Pusat yang memiliki 12 kamera. Dengan membuka tampilan site "Gedung Kantor Pusat", ia langsung melihat semua kamera tersebut dalam satu grid yang bisa diatur tata letaknya sesuai denah fisik gedung — kamera lobby di slot kiri atas, kamera parkiran di bawah, dan seterusnya. Layout itu disimpan sebagai template sehingga esok hari saat ia buka kembali, susunan kamera tetap sama.
Tampilan by-site mendukung filter analitik dan event panel di sisi kanan layar. Di mode ini tersedia pula fitur:
- Edit Layout — atur grid 1×1, 2×2, 3×3, 4×4, atau template kustom sesuai kebutuhan layar.
- Atur Urutan — drag-and-drop untuk menyusun kartu stream per site sesuai denah fisik.
- Save Template — simpan layout sebagai template per site agar dapat diakses ulang di kunjungan berikutnya.
- Stream Pool Panel — panel untuk menyeret stream ke slot grid kosong.

Tampilan Peta
Tampilan Peta sangat berguna untuk memahami distribusi kamera secara geografis — misalnya saat merencanakan penambahan kamera baru, atau saat insiden terjadi dan Anda perlu tahu kamera mana yang paling dekat dengan lokasi kejadian.

- Cluster — kamera yang berdekatan dikelompokkan menjadi satu penanda dengan angka. Zoom in untuk memisahkan cluster dan melihat kamera individual.
- Tracking per kamera — aktifkan tracking pada kamera tertentu untuk menampilkan overlay rute pergerakan objek dari hasil deteksi People/Vehicle Analytics. Berguna untuk memantau pola pergerakan di area tertentu.
- Klik penanda kamera untuk melihat thumbnail live dan informasi dasar stream.
Agar kamera muncul di peta, koordinat latitude/longitude harus diisi saat menambah atau mengedit stream.
Bulk Actions
Bulk Actions menghemat waktu ketika Anda perlu mengelola banyak stream sekaligus — misalnya menonaktifkan semua kamera dari satu node yang akan dimaintenance, atau menetapkan 20 kamera baru ke site yang sama.
Pilih beberapa stream sekaligus dengan checkbox di kartu/tabel, lalu gunakan menu Aksi (N) di toolbar untuk menjalankan operasi massal:

Aktifkan / Nonaktifkan
Toggle massal beberapa stream secara bersamaan. Berguna saat memutus sementara semua kamera dari node tertentu, misalnya saat pemeliharaan jaringan.
Hapus Stream
Menghapus banyak stream sekaligus secara permanen. Setiap baris diproses serial dengan progress bar; gagal sebagian tetap dilaporkan. Tindakan ini tidak dapat dibatalkan.
Tetapkan ke Site
Menambahkan beberapa stream ke site target dalam satu aksi. Stream yang sudah terdaftar di site lain tidak dilepas dari site tersebut — ini menambah, bukan mengganti. Mendukung pembatalan di tengah proses.
Hapus Pilihan
Membersihkan seleksi tanpa menjalankan aksi apa pun.
Hapus Stream bersifat permanen — tidak ada konfirmasi kedua setelah proses dimulai. Pastikan Anda telah memilih stream yang benar sebelum mengklik tombol hapus di dialog.
Bulk operations dilakukan iteratif menggunakan endpoint CRUD standar. Selama proses berjalan, dialog menampilkan progres n / total, daftar yang sudah selesai, dan daftar error per item. Anda dapat membatalkan dengan tombol Batalkan Proses — stream yang sudah diproses tidak akan di-rollback.
Import & Export
Import CSV adalah cara tercepat untuk mendaftarkan banyak kamera sekaligus, misalnya saat pertama kali menyiapkan sistem untuk satu gedung baru.
Format CSV: Ekspor terlebih dahulu untuk mendapatkan template dengan kolom yang benar, lalu edit di spreadsheet dan impor kembali.
Kolom-kolom yang didukung:
| Kolom | Keterangan | Wajib |
|---|---|---|
stream_name | Nama stream | Ya |
stream_address | URL RTSP atau RTMP | Ya |
stream_node_num | Nomor node tujuan | Ya |
stream_latitude | Koordinat latitude | Ya |
stream_longitude | Koordinat longitude | Ya |
active | true atau false | Ya |
rtsp_transport | tcp atau udp | Ya |
sites | Path site, dipisah titik koma (;). Contoh: GedungA/Lantai1 | Tidak |
tags | Tag bebas, dipisah titik koma (;). Contoh: outdoor;entrance | Tidak |
instance | ID instance (hanya di mode Federation) | Tidak |
Contoh satu baris CSV:
stream_name,stream_address,stream_node_num,stream_latitude,stream_longitude,active,rtsp_transport,sites,tags
Pintu Masuk Utama,rtsp://192.168.1.100:554/stream1,1,-6.2088,106.8456,true,tcp,GedungA/Lobby,entrance;hd
Import dari CSV — klik Kelola Stream → Impor Stream di toolbar untuk membuka dialog upload. Sistem akan:
- Mem-parsing file CSV dan memvalidasi setiap baris (nama, alamat, node, dst.).
- Mendeteksi alamat atau nama duplikat dan meminta konfirmasi: pilih duplikat yang tetap diimpor.
- Opsi Gunakan Rekomendasi Node akan otomatis memilih node dengan beban GPU/CPU/memori paling rendah, mengabaikan kolom
stream_node_numdi CSV. - Menampilkan ringkasan stream Valid / Duplikat / Error sebelum eksekusi.
Export ke CSV — klik Kelola Stream → Ekspor Stream untuk mengunduh seluruh daftar stream (bukan hanya yang tampil di halaman saat ini). File menggunakan kolom standar yang kompatibel dengan flow import, sehingga Anda dapat: ekspor → edit di spreadsheet → impor kembali.
Filter & Tag
Filter status menggunakan parameter filter[stream_status] dengan nilai online atau offline. Untuk menyaring stream yang dinonaktifkan, gunakan filter[active]=false.
Filter Tag mendukung multi-tag dengan pemisah koma. Contoh: filter[tags]=outdoor,entrance akan menampilkan stream yang memiliki salah satu dari tag tersebut. Daftar tag yang tersedia dapat diambil melalui GET /api/streams/tags.
Filter Analitik menggunakan filter[analytic_id] — isi dengan ID analitik seperti NFDSS-FR untuk menampilkan hanya stream yang menjalankan Face Recognition.
Diagnostik Stream
Ketika sebuah stream berstatus Offline, fitur Diagnostik adalah tempat pertama yang harus dibuka. Diagnostik mengirimkan perintah jaringan dari server Visionaire (bukan dari browser Anda) langsung ke kamera — sehingga hasilnya mencerminkan kondisi konektivitas yang sebenarnya.

Untuk mengakses Diagnostik:
- Klik ikon info pada kartu stream, atau buka halaman detail stream.
- Pilih tab Diagnostik.
Alat Diagnostik yang Tersedia
| Alat | Fungsi | Apa yang Diperiksa |
|---|---|---|
| Ping | Mengirim paket ICMP ke alamat IP kamera | Apakah kamera dapat dijangkau di level jaringan dasar. Jika gagal: kamera mati, kabel putus, atau ada pemblokiran di firewall/VLAN. |
| Cek Port | Membuka koneksi TCP ke port tujuan | Apakah layanan RTSP kamera sedang berjalan dan dapat dijangkau. Port RTSP standar adalah 554. Jika ping berhasil tapi port gagal: kamera menyala tapi layanan RTSP tidak aktif, atau port diblokir firewall. |
| Stream Probe | Membaca beberapa frame dari stream menggunakan ffprobe | Apakah format video kamera dapat dibaca oleh Visionaire. Menampilkan codec, resolusi, dan frame rate. Jika port berhasil tapi probe gagal: kredensial salah, path RTSP tidak tepat, atau format video tidak didukung. |
| Traceroute | Melacak jalur paket dari node ke kamera, hop per hop | Di titik mana koneksi terputus di jaringan. Berguna untuk melibatkan tim jaringan saat ada masalah routing. |
Langkah Diagnosa Saat Stream Offline
Jalankan Ping
Jika berhasil → kamera dapat dijangkau, lanjut ke langkah berikutnya. Jika gagal → periksa kabel jaringan kamera, konfirmasi IP address benar, dan periksa apakah ada VLAN atau firewall yang memblokir ICMP dari subnet node.
Jalankan Cek Port
Jika berhasil → port RTSP terbuka, lanjut ke langkah berikutnya. Jika gagal → konfirmasi dengan tim jaringan bahwa port 554 (atau port kustom yang Anda gunakan) terbuka dari subnet node Visionaire.
Jalankan Stream Probe
Jika berhasil → Visionaire dapat membaca video, masalah mungkin ada di konfigurasi pipeline.
Jika gagal → periksa URL RTSP (path, username, password), atau coba ubah RTSP Transport dari udp ke tcp (atau sebaliknya) melalui form Edit Stream.
Jika semua berhasil tapi stream masih Offline
Gunakan Traceroute untuk mengidentifikasi hop bermasalah, lalu kirim hasilnya ke tim jaringan. Periksa juga apakah node Visionaire memiliki kapasitas GPU/CPU yang cukup.
Fitur Utama
Live Preview
Pantau feed video secara langsung dari halaman detail stream, lengkap dengan overlay hasil deteksi AI dari pipeline yang aktif.
Multi-Site Assignment
Satu stream dapat ditetapkan ke beberapa site sekaligus. Gunakan endpoint assign-sites atau form edit untuk mengatur penetapan ini.
Tag-based Filtering
Kategorikan stream dengan tag bebas (outdoor, entrance, hd, dll.) dan filter daftar menggunakan satu atau lebih tag secara bersamaan.
Federation Support
Dalam deployment multi-instance, gunakan parameter instance dan is_aggregated untuk menampilkan atau mengelola stream dari seluruh instance secara terpusat.
Pipeline Auto-Create
Saat stream baru ditambahkan dengan analitik yang dipilih, sistem secara otomatis membuat Pipeline di node yang sesuai tanpa konfigurasi manual.
Diagnostik Jaringan
Tab Diagnostik menyediakan Ping, Cek Port, Stream Probe, dan Traceroute untuk menelusuri masalah konektivitas kamera langsung dari server node.
Bulk Operations
Pilih banyak stream dengan checkbox lalu jalankan Aktifkan, Nonaktifkan, Hapus, atau Tetapkan-ke-Site secara massal dengan progress bar dan recovery error per item.
Import / Export CSV
Impor banyak kamera dari file CSV dengan rekomendasi node otomatis berbasis beban, atau ekspor seluruh daftar untuk audit atau migrasi.
Tampilan Peta & Tracking
Lihat semua kamera di peta dengan cluster marker. Aktifkan tracking per kamera untuk overlay rute pergerakan objek hasil deteksi People/Vehicle Analytics.
Layout Templates per Site
Susun grid kartu stream per site dengan drag-and-drop. Simpan sebagai template (1×1, 2×2, 3×3, 4×4, atau kustom) untuk dipakai ulang.
Federation Mode
Jika organisasi Anda menjalankan Visionaire di beberapa pusat data atau lokasi terpisah, Federation memungkinkan satu dashboard Lenz melihat dan mengelola stream dari semua lokasi sekaligus — tanpa harus membuka dashboard yang berbeda untuk setiap lokasi. Operator cukup memilih "tampilkan semua" atau memilih satu instance spesifik dari dropdown filter.
Aktifkan mode ini melalui Preferensi → Fitur → Federation Mode.
Cara menggunakan parameter Federation:
- Gunakan
instance=<id>untuk menargetkan instance spesifik (contoh:instance=remote-jakarta). - Gunakan
is_aggregated=truetanpainstanceuntuk mengambil data dari seluruh instance secara gabungan. - Saat Federation aktif dan tidak ada
instanceyang dipilih, sistem secara otomatis menambahkanis_aggregated=true.
curl -X GET "${API_URL}/api/streams?is_aggregated=true&filter[stream_status]=online" \
-H "Authorization: Bearer <token>"curl -X GET "${API_URL}/api/streams?instance=remote-jakarta&filter[stream_status]=online" \
-H "Authorization: Bearer <token>"Pada respons Federation yang bersifat parsial (sebagian instance tidak merespons), body respons akan menyertakan field partial: true dan array errors yang berisi detail kegagalan per instance. Data stream yang berhasil diambil tetap ditampilkan, dan ikon peringatan akan muncul di toolbar halaman Streams.
Tips & Troubleshooting
Selanjutnya
Video Management
Kelola recording video, konfigurasi Media Server, dan playback rekaman dari stream.
Assignment
Kelola penetapan analitik ke stream dan konfigurasi pipeline secara lebih mendalam.
Sites
Buat dan kelola site (lokasi fisik) untuk mengelompokkan stream berdasarkan area.
Media Servers
Konfigurasi NVR dan Media Server untuk recording dan streaming RTMP.