How to reliably retrieve the snapshots from the date range? I request a VideoStream and I create a get request to URL XProtectMobile/Video/ repeatedly; However the it repeat the same image,

Hi Keith,

You approach is correct in general.

Few things that have to be checked however:

  • I suppose you have created playback stream.

By default it is in stopped state ad the DB end.

You have to “seek” (ChangeStream with Time parameter) to the range start time.

After that you have to start playback (ChangeStream with Speed=1).

After that on the “XProtectMobile/Video/<video_id>” you can get your frames.

  • Together with the JPEG data there is a header with frame timestamp.

You can check if the received time if different than previous one.

You have to check also and if timestamp of the frame is greater than range end.

  • Be careful to open the video steam in “Pull” mode.

Otherwise Server will try to push multiple frames in single http response.

In that case you have to separate the frames.

  • Try to use POST instead of GET.

Depending on the platform you are using, there could be client side cache mechanism, when resources from one and the same address are requested.

Common easy way to overcome that is to send a single byte to server via POST instead of GET.

We have seen such behavior not only on browsers but also and on Android and iOS.

Btw, Are you using Mobile SDK or you are implementing by yourself protocol integration ?

What is the target platform ?