Live Video From Protocol Integration Image Server skips frames, but Component Integration does not. How to fix this issue

Hello,

I have a problem, Im doing a protocol integration to our java based interface and when ı get live video from Image Server, it skips frames and/or laggs visibly. I even tested this with your TcpVideoViewer test program and it happens on it as well.

here’s an examplary video link made with TcpVideoViewer: https://drive.google.com/file/d/1HHSXaHq9uZWVFB6VIVLNRH0p8p59TwlS/view?usp=sharing

When i use your component integration test program to view live video this issue does not exist.

How can we fix this, because this is a big issue. Any help is appreciated.

Note: I’m using the latest version milestone xprotect on the pc, and xprotect is installed on a seperate pc.

**Note 2:**I tried deleting xprotect completely and reinstalling it

The TCPVideoViewer sample asks the Image Server service for transcoded images. If the camera is not using Jpeg natively the images have in the server been decoded, and re-encoded in Jpeg. This will cause latency and skips of images if the server is operating under high load. It is recommended to ask the Image Server service for raw unaltered media data.

As handling raw data that requires the recipient to understand and handle multiple formats this is not shown in the TCPVideoViewer sample, or any other protocol sample.

When working with the ImageViewerControl this is a highly specialized component that has been refined and optimized over many years, it gets the raw live stream or the raw video data, does the decoding client side and can utilize hardware acceleration etc.

When using the raw protocol you need to handle the raw formats and the GenericByteData header. I recommend you see:

https://doc.developer.milestonesys.com/html/index.html?base=mipgenericbytedata/main.html&tree=tree_3.html

If requirements is demanding that you use protocols I hope you are able to utilize this even as there is no sample.

Hello Bo, thank you for your answer. This gave me so much insight. I will look for other ways to get video from milestone. I have one more question, we have the requirement that we want to be able to switch between live and playback stream in a fast way like Xprotect smart client. If there are two urls for live and playback, it takes time to switch between them on our side**.** Does any other integrations enable something like this in perhaps one video stream url? Or do you know any other way to achieve fast switching between live and playback?

I think you will use Image Server protocol for both live and playback, this is what the Smart Client does when diving deep to the core of it.

Depending on the requirements of your system the Mobile Server and Mobile SDK might be better suited.

https://doc.developer.milestonesys.com/mipsdkmobile/

In one sense it is immediately better as there are samples easy to adapt to your Java environment.