Start a new topic

NDI vs MJpeg vs SDI/HDMI


First of all, thank you in advance for your patience for reading this .... book :))

I hope my shared experience will help others who have the same  questions. 

‘My computer configuration is:

- I7-7700 3,6ghz, 16gb RAM, SSD, nVIDIA GTX 1070.

Network: gigabit

I do video production & live streaming. I don’t do games. 

I use primarily Vmix and secondary, OBS. 

I have 2 PTZ Optics 12x cameras and I use them through NDI. I’ve done a lot of testing with them (like changing profiles, changing bit rates, h264/hevc/mjpeg - in the web interface).

The best quality settings from my POV on NDI are the following:

Camera web interface:

NDI high quality preset  with the following edits:

50hz (I live in Europe)

Encode Protocol: h264 (it preserves a few more details and it’s a little bit more sharper on high profile than h265)

Encode Level: high profile 

Bit Rate: 20000kbps

Frame rate: 50p


I key frame interval: default (I didn’t understand this function very well and I didn’t have much time for it). I think the default is double the frame rate, 100. I speak from my memory because I don’t have access to computer right now. Can I obtain better quality increasing or decreasing that number?

I compared the settings above with the standard ‘high quality NDI preset’ and I like my custom settings better. My settings preserves more detail and the image is a little bit more sharper. 

vMix recording settings:

MP4 - H264 - High Profile - 48mbps

My first question was:

If my camera has a bit rate of 20mbps, do I need to set my recording to 20mbps or 48mbps?
So I tested those 3 options in vMix: 20mb, 48mb and 75 or 78mb (I don’t rembember exactly the preset number)

20mb vs 48 mb - the quality was better on 48mb (it’s worth it)

48 mb vs 75mb - the quality was the same 

So I will go with 48mb. Maybe someone can explain why the results are better with 48mb if I transmit with only 20mb from the camera. My logic says that if I transmit with 20mb, the recording would have the max quality with 20mb - 25mb preset. Maybe my logic is wrong. The test is saying something else. 

And about the latency, it’s pretty small. Almost real time. 

Now it’s time for another battle: H264 vs MJPEG (camera web interface settings).

48mb H264, high profile VS 48mb MJPEG


- quality rocks on MJPEG

- highlights are far better preserved with MJPEG (and this was a problem for me with h264)

- more details on MJPEG

- MJPEG is flatter which I like (like a LOG profile but far from it...)

- of course, the same file size as h264

- bye bye second stream 

- bye bye NDI

- bye bye low latency 

Now, let the questions begin.

For my live streamings, I will go with NDI settings from above, but for recording purposes, I want to go with MJPEG. 

I import the MJPEG feed with Add Input - Stream, in vMix. 

Is there any solution to decrease the almost 1 second latency?

If I leave the camera on NDI settings (H264) for low latency image, then connect the camera to the computer via HDMI/SDI and capture the HDMI/SDI feed (hope that the cameras transmit MJPEG through HDMI/SDI), it would be better?

 I can’t test this scenario because I don’t have a capture card. I want to get rid of that latency but I don’t know if it’s possible. If this solution works, I can buy two capture cards for my 2 cameras. 

I know that HDMI has some latency, but can it be compared with NDI latency or with MJPEG stream latency?

Does SDI have latency?

I have a feeling that I need to get used with that latency if I want that quality....

PS: I hope you understand what I’m saying. I’m not an English speaker  

Thanks a lot!

Login to post a comment