Diagnosing Performance

In the web UI of Multiview for NDI there is a Performance page. This page reports a snapshot of Multiview's current performance, and can be used for troubleshooting performance issues.

The information provided by this page can also be viewed by issuing an HTTP GET request (or going to the following URL in your browser) to:

http://{hostname}:8901/debug

Below is an example of performance output from a Multiview for NDI instance running on Windows 11.

Performance Metrics (All times in msec) | Version 2025.11.4.2 (windows_x86_64_TRACTUSLAPTOP5)
Started at (UTC): 11/7/2025 5:35:55 PM (3.1 min uptime)

NDI Receiver Frame Times
	BIRDDOG-05C88 (CAM) (1920 x 1080 @ 60.00)
		(Avg: 16, Min: 14, Max: 18)
		14 18 14 16 16 16 17 16 15 18 14 
		Audio Samples: 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 
	BIRDDOG-C8FF8 (CAM) (1920 x 1080 @ 60.00)
		(Avg: 17, Min: 14, Max: 19)
		19 16 14 19 16 14 18 16 14 19 19 
	PPT2 (Intel Graphics 1) (1920 x 1080 @ 30.00)
		(Avg: 32, Min: 15, Max: 51)
		21 50 16 47 19 45 22 46 20 51 15 
	OPIZERO3MIC (Free Audio) (0 x 0 @ -)
				
		Audio Samples: 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 
	ALPHAVII (NVIDIA GeForce RTX 4070 1) (3840 x 2160 @ 30.00)
		(Avg: 33, Min: 30, Max: 35)
		33 33 31 35 30 34 32 35 33 34 30 
	ALPHAVII (NVIDIA GeForce RTX 4070 2) (1920 x 1080 @ 30.00)
		(Avg: 33, Min: 31, Max: 34)
		34 32 31 33 33 34 32 33 33 33 32 
	ALPHAVII (NVIDIA GeForce RTX 4070 3) (3840 x 2160 @ 30.00)
		(Avg: 33, Min: 32, Max: 34)
		34 32 33 33 33 34 32 33 33 33 32 

NDI Receivers: 7
	GUID                                 | AvgFT | Mode  | KVM? | PTZ? | Subs | Last Seen Timestamp | WDT | Name
	F8C8264A-8EE6-459A-8E66-8524114C437D | 0016  | Full  |      | Yes  | 0001 | 0015840515168545968 |     | BIRDDOG-05C88 (CAM)
	C6743615-6137-4FFA-B08C-C1A929ACCB76 | 0017  | Full  |      | Yes  | 0001 | 0017586772581643038 |     | BIRDDOG-C8FF8 (CAM)
	F2B05C51-61FF-432F-A194-ED1832AFF597 | 0032  | Full  | Yes  |      | 0001 | 0017625371453658386 |     | PPT2 (Intel Graphics 1)
	0AD921F3-8D90-439C-9E13-83CBC0131CA2 | ----  | Full  |      |      | 0001 | 0000000000000000000 |     | OPIZERO3MIC (Free Audio)
	6B934AC7-7172-4049-840B-B25D5B8E97CB | 0033  | Full  |      |      | 0001 | 0017625371463752199 |     | ALPHAVII (NVIDIA GeForce RTX 4070 1)
	B3190155-C14B-4019-A3D8-469C2D96EB90 | 0033  | Full  |      |      | 0001 | 0017625371463916833 |     | ALPHAVII (NVIDIA GeForce RTX 4070 2)
	24C15647-8510-497C-94C8-41126F4BEB23 | 0033  | Full  |      |      | 0001 | 0017625371463873697 |     | ALPHAVII (NVIDIA GeForce RTX 4070 3)

Multiview Outputs
Legend: [Cycle Part] [Min]/[Avg]/[Max] | [Times]

0: Viewer 1
1920 x 1080 @ 60.00
NDI Output: On | Encoder Type: nvenchevc | Bitrate (bps, HX-only): 25000000
Is NDI|HX: Yes
	Ops	00/00/00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	Render	01/01/01 | 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	NDIOut	11/12/13 | 11 11 12 12 12 12 11 11 12 12 12 12 11 11 12 12 12 12 11 11 12 12 12 13 13
	HXEnc	02/02/02 | 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	ALL	15/16/17 | 15 16 16 15 17 17 16 16 16 15 17 16 16 17 16 16 16 16 16 17 15 17 16 17 17

NDI Receiver Frame Times

Each active NDI receiver will report the time between when frames were received and decoded by the NDI library inside Multiview.

Here is an example receiver line.

	BIRDDOG-05C88 (CAM) (1920 x 1080 @ 60.00)
		(Avg: 16, Min: 9, Max: 24)
		21 9 16 18 14 16 17 10 24 13 17 
		Audio Samples: 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 

Source Name, Resolution, and Reported Frame rate

The first line reports the name of the source, the resolution of the latest frame received, and the frame rate as reported by the last frame received.

	BIRDDOG-05C88 (CAM) (1920 x 1080 @ 60.00)

This source's name is BIRDDOG-05C88 (CAM), it is sending frames at 1920x1080, and has a reported frame rate of 60.00 frames per second.

Frame Time Diagnostic Measures

The next line reports the average time in milliseconds between the last few frames received.

		(Avg: 16, Min: 9, Max: 24)

This source has an average time between frames of 16 milliseconds, with a minimum time of 9 milliseconds and a maximum time of 24 milliseconds.

Note that this time includes time spent by the NDI library decoding the frame. It is possible for this value to have some jitter. For a source running at a consistent frame cadence, you should expect to see frame times vary no more than ({frameRate}/ 1000) / 2 .

For example, a 60 fps source should average 16 msec per frame, varying by no more than +/- 8.34 msec per frame (7.66 to 24.34 msec).

Here is an example of Test Pattern from NDI Tools.

	ALPHAVII (Test Pattern) (854 x 480 @ 29.97)
		(Avg: 999, Min: 998, Max: 1001)
		999 1001 999 998 1000 999 1000 1000 999 999 1000 
		Audio Samples: 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800 4800

Test Pattern sends out one frame per second.

Individual Frame Times

The third line reports the last few differences in received frame times.

		21 9 16 18 14 16 17 10 24 13 17 

These times are reported in milliseconds.

Audio Samples Received

The final line, if present, will include the number of audio samples received per audio frame.

		Audio Samples: 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 

Note that in NDI, audio and video frames travel separately.

NDI Receivers List

The next section that appears after the frame times list is diagnostic details about the receivers that are currently being maintained by Multiview for NDI.

A single receiver can send its frames to an unlimited number of multiviews within Multiview for NDI. This helps conserve bandwidth and reduce the amount of time needed to decode sources.

NDI Receivers: 8
	GUID                                 | AvgFT | Mode  | KVM? | PTZ? | Subs | Last Seen Timestamp | WDT | Name
	F8C8264A-8EE6-459A-8E66-8524114C437D | 0016  | Full  |      | Yes  | 0001 | 0015840525926905369 |     | BIRDDOG-05C88 (CAM)
	C6743615-6137-4FFA-B08C-C1A929ACCB76 | 0016  | Full  |      | Yes  | 0001 | 0017586783340065065 |     | BIRDDOG-C8FF8 (CAM)
	F2B05C51-61FF-432F-A194-ED1832AFF597 | 0032  | Full  | Yes  |      | 0001 | 0017625382211850636 |     | PPT2 (Intel Graphics 1)
	0AD921F3-8D90-439C-9E13-83CBC0131CA2 | ----  | Full  |      |      | 0001 | 0000000000000000000 |     | OPIZERO3MIC (Free Audio)
	6B934AC7-7172-4049-840B-B25D5B8E97CB | 0033  | Full  |      |      | 0001 | 0017625382222074655 |     | ALPHAVII (NVIDIA GeForce RTX 4070 1)
	B3190155-C14B-4019-A3D8-469C2D96EB90 | 0033  | Full  |      |      | 0001 | 0017625382222251074 |     | ALPHAVII (NVIDIA GeForce RTX 4070 2)
	24C15647-8510-497C-94C8-41126F4BEB23 | 0033  | Full  |      |      | 0001 | 0017625382222208469 |     | ALPHAVII (NVIDIA GeForce RTX 4070 3)
	B538CD5C-9294-4A8C-820F-FED59B91BF62 | 0999  | Full  |      |      | 0001 | 0017625382216846359 |     | ALPHAVII (Test Pattern)

Receiver Diagnostic Table Columns

Column Name
Definition

GUID

The unique identifier of this receiver. Used by NDI Discovery.

AvgFT

The average time between received & decoded video frames in milliseconds for this receiver.

Mode

Either Full or Proxy. Denotes the bandwidth mode of the source.

KVM?

If yes, this source reports that it supports KVM control.

PTZ?

If yes, this source reports that it supports PTZ control.

Subs

The number of multiview viewports that are subscribed to this source's receiver.

Last Seen Timestamp

The timestamp of the last video frame received by this source. If the last seen timestamp is all zeroes (0000000000000000000), a video frame has never been received.

WDT

When yes, the watchdog timer for this source has been tripped. That happens when no video or audio frames have been received for at least 5 seconds from that source.

Name

The name of the source.

Multiview Output Performance

The final major section of the performance output is the render times for each multiview output.

Multiview Outputs
Legend: [Cycle Part] [Min]/[Avg]/[Max] | [Times]

0: Viewer 1
1920 x 1080 @ 60.00
NDI Output: On | Encoder Type: nvenchevc | Bitrate (bps, HX-only): 25000000
Is NDI|HX: Yes
	Ops	00/00/00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
	Render	01/01/01 | 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
	NDIOut	11/12/13 | 13 13 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 13 13 13 12 12 11 11
	HXEnc	02/02/02 | 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
	ALL	15/16/17 | 17 16 16 16 16 16 16 16 16 17 16 16 16 16 16 17 15 17 16 16 16 16 17 17 15

Each frame rendered by Multiview involves four cycle parts. Each cycle part is considered a major part of a render pass.

Cycle Parts (Times in milliseconds)

Cycle Part
Description
Ideal/Expected Value

Ops

At the start of each frame, any operations enqueued (e.g. changing a caption's text, resolution changes) are processed.

This should only be above zero for a single frame if there are multiple operations to process. Otherwise, this number should always be zero.

Render

How long it took to clear the current frame, fill it with black, draw borders, draw each viewport, draw captions, images, and audio meters.

This number should always be less than your target frame time. For example, at 60 fps, render times should be < 16 msec. If this number is constantly above your target frame time, your computer cannot render the Multiview fast enough.

HXEnc

If you are using an NDI|HX encoder for output, this is how long it took to convert the rendered frame to an NDI|HX frame.

This does not include the time sending the frame to NDI - this is just how long it took to convert the rendered frame. When considering performance in NDI|HX output scenarios, the Render + HXEnc numbers should be less than your target frame time.

NDIOut

How long NDI waited after the frame was enqueued for sending. In essence, this number represents how much headroom your render + HX encoder times have left.

This metric is a bit different from the others as it can only decrease from the target frame time. If this number is constantly at zero, your computer cannot render and output the Multiview fast enough, and Multiview will drop frames.

ALL

The sum of Ops, Render, NDIOut, and HXEnc.

If this number is constantly above your target frame time by more than 1-2 msec, your computer cannot render the Multiview output fast enough. Ideally, this number should be 1-2 milliseconds within your target frame time. For 60fps, this number should be 15-18 msec. For 30 fps, this number should be between 32-34 msec.

Diagnostic Tips

  • Mutliview for NDI does not use GPU for rendering frames - it uses CPU. Many of the rendering routines are multithreaded and ready to take advantage of multiple cores. If you have high render times, try increasing the number of cores multiview can use.

  • NDI Receiver frame times also include the time it takes for a frame to travel over the network to the receiver and be decoded by the NDI library. You should not expect these frame times to be 100% perfect, but as long as they're within ranges described in Note 12 from the NDI Analysis documentation, you should see smooth performance from that source.

  • NDI|HX sources are decoded using hardware GPU acceleration on Windows and MacOS, if available. This is done by the NDI library and not Multiview itself. Linux uses a software-only CPU decode path.

  • Treat the NDIOut cycle part as the amount of "headroom" your multiview output has before it will start dropping frames. If this number is getting close to 0, multiview is more vulnerable to dropping frames in the presence of jitter or major interruption by other processes.

  • Multiview for NDI should only have one running instance per computer. Running multiple Multiview for NDI executables at the same time on a single computer will have a negative impact on performance and is unsupported.

Last updated