Skip to main content

IC Realtime NVR (Monitor Layout)

Layout control for IC Realtime NVRs and multiviewers over the Dahua-style split.cgi interface. This driver switches the split-screen layout and the block of cameras shown on the NVR's own monitor output — the HDMI or BNC "spot monitor" wired directly to the recorder. One NVR becomes one GEM device.

Because split.cgi is the same endpoint Dahua-OEM recorders expose, this driver also drives many rebadged Dahua NVRs.

Communication is a single plain HTTP request to the NVR on port 80.

What this driver covers

  • Layout switching — set the NVR's local monitor to a 1-, 4-, 9-, 16-, 25-, 36-, or 64-camera grid.
  • Camera page — choose which block of cameras fills that grid (for example cameras 1–4 versus 5–8 in a 4-up).

What this driver does NOT cover

  • No camera video in GEM. This driver never pulls camera streams into GEM — it only rearranges what the physical monitor wired to the NVR shows. To view cameras inside GEM, bring the camera or NVR streams in through GEM's own camera streaming.
  • No zones. The NVR is added as a device only; there is nothing to turn on or off. You drive it entirely with the split_view command.
  • No PTZ, recording, playback, snapshots, motion, or events. The driver sends layout commands and reads nothing back — the NVR reports no status to GEM.

What this driver actually sends — and the login caveat

Each layout change is sent as an unauthenticated request to http://<NVR-IP>/cgi-bin/split.cgi on port 80 — plain HTTP, no login.

The Username, Password, and Port fields are not used by the layout command

The device form asks for a Username and Password because the NVR account is where you confirm you have the layout privilege, but those credentials are not attached to the layout request — it always goes out unauthenticated. The Port field is likewise ignored; the command always uses port 80 over plain HTTP.

On a job this means:

  • It works out of the box on NVRs and firmware that accept split.cgi without a login on port 80.
  • If your NVR requires a login on that endpoint, the command comes back 401 Unauthorized and the layout never changes — and entering the correct username and password will not fix it, because they are not sent. Confirm the recorder accepts the request without a login before relying on it.

A quick way to confirm before you wire anything up: paste http://<NVR-IP>/cgi-bin/split.cgi?action=setMode&channel=0&mode=split4&group=0 into a browser. If the NVR's monitor switches to a 4-up without prompting for a login, this driver will drive it.

Prerequisites

  • An IC Realtime / Dahua-OEM NVR reachable on the LAN whose firmware exposes the /cgi-bin/split.cgi layout endpoint (most do).
  • The NVR's local HDMI or BNC monitor output connected to a display — this driver changes what that display shows, nothing else.
  • The split.cgi endpoint reachable on port 80 without a login (see the caveat above).

Setup

  1. Confirm you can change the NVR's monitor layout from its own front-panel or mouse interface first, and note the NVR's LAN IP.
  2. (Recommended) In a browser, load http://<NVR-IP>/cgi-bin/split.cgi?action=setMode&channel=0&mode=split4&group=0 and confirm the monitor switches to a 4-up without asking for credentials.
  3. Open Devices (System → Devices) and click Add Device.
  4. Choose the IC Realtime NVR driver. GEM shows the matching device fields, and a View integration guide toggle links to this page.
  5. Fill in the device attributes below and Save. Place the device in whichever subsystem you use for surveillance gear — Cameras or Security both work; because this driver has no zones, the subsystem is only for organization.
  6. There is no zone to create. Send a split_view command from the Commands page (or a quick test macro) to confirm the monitor layout changes.

Device attributes

AttributeRequiredDefaultDescription
ipyesLAN IP or hostname of the NVR.
usernameyesAn NVR account. Collected for reference only — not sent with the layout command (see the login caveat).
passwordyesThe NVR account password. Stored encrypted. Not sent with the layout command (see the login caveat).
portno80HTTP port field. The layout command ignores this and always uses port 80.

Commands

CommandArgsNotes
split_viewoutput, count, groupSwitch the NVR's monitor to a count-tile grid showing camera page group on output output.

Argument reference:

  • output — the NVR video output to change (HDMI/BNC channel). Default 0 = the primary output. Many models only accept 0; secondary outputs may be locked depending on the recorder.
  • count — number of tiles in the grid. Must be one of 1, 4, 9, 16, 25, 36, 64. Any other value is silently ignored by the NVR, so the layout simply does not change. Default 4.
  • group — which page of cameras fills the grid, zero-based. Each page holds count cameras: with count 4, group 0 shows cameras 1–4, group 1 shows 5–8, group 2 shows 9–12, and so on. Default 0. The exact camera-to-tile assignment is set on the NVR, not in GEM.

On the Commands page these are three plain text fields — type the number for each.

Running the layout from automation

Because there are no zones, you drive the monitor entirely with the split_view command:

  • From Commands (System → Commands) — pick the NVR device and the split_view command, enter output / count / group, and run it. This is the quickest way to confirm wiring.
  • From a macro — add a device-command step that sends split_view with fixed arguments, for example "Lobby monitor → cameras 1–4" (count 4, group 0) and "Lobby monitor → cameras 5–8" (count 4, group 1). Put those macros on touchpanel buttons so staff can flip the guard-monitor view with one tap.
  • From a trigger — switch the monitor automatically, for example a full-screen entry camera (count 1) when the doorbell rings, or a 4-up of the perimeter cameras when the alarm arms.
This is separate from GEM Multiview

GEM has its own Multiview feature for composing camera and source tiles onto a display GEM controls. That is a different thing from this driver, which only rearranges the NVR's own built-in monitor output. Use whichever matches where the video actually comes from.

Troubleshooting

SymptomCheck
The layout never changesConfirm count is one of 1 / 4 / 9 / 16 / 25 / 36 / 64 — any other number is ignored. Confirm output matches a real monitor output (start with 0). And confirm split.cgi works without a login in a browser (see the login caveat) — if it prompts for credentials, this command cannot supply them.
Every command returns 401The NVR is enforcing a login on split.cgi. This driver sends the layout request unauthenticated, so the stored Username and Password do not help. Drive the layout from the NVR's own interface, or use a recorder/firmware that leaves the CGI open.
The wrong cameras appear in the gridgroup is a zero-based page of count cameras; raise or lower it to page through the camera list. The exact camera order is set on the NVR, not in GEM.
No camera video shows up in GEMExpected — this driver only controls the NVR's local monitor layout. Bring camera streams into GEM through its camera streaming, and add a Dahua (RPC2) or ONVIF device for motion and events.
  • Devices — adding and configuring the NVR device row.
  • Subsystems — the Cameras / Security subsystem the device is organized under.
  • Commands — running split_view from the admin UI, macros, and triggers.
  • Macros — building one-tap "show these cameras" layout presets.
  • Triggers — switching the monitor automatically on alarm or door events.
  • Multiview — GEM's own multi-tile view for displays GEM drives (distinct from the NVR's built-in monitor output).
  • Dahua (RPC2) — the event and monitoring integration for the same Dahua-OEM hardware; pair it for motion, alarm, and intercom events.
  • ONVIF — the vendor-neutral camera integration for motion and event ingestion.