Get stream URI for each recording returned by Onvif Bridge

Hello,

I need to be able to read a single video stream for each recording returned by FindRecordings, from Onvif Bridge.

I’ve posted my issue before on this forum, see details here : https://force.milestonesys.com/support/MccSupportCommunity?refURL=http://force.milestonesys.com/support/MccSupportCommunity#!/feedtype=SINGLE_QUESTION_SEARCH_RESULT&id=9060O000000XbJTQA0

So far, I’ve been able to get a list of the recordings through the Onvif Bridge thanks to this post : https://developer.milestonesys.com/s/question/0D50O00003RsCm4SAF/onvif-bridge-findrecording-method.

Unfortunately, the results I get don’t provide a single unique stream URI, for each recording. Instead, I always get the same

URI, which is rtsp://:554/vod/.

This single URI stream containing all of the recordings put together could be useful, if I had a way to get parts of the

stream by providing a datetime value to start from. This has been asked by another user before, but their question is left unanswered : https://developer.milestonesys.com/s/question/0D50O00003EIs1DSAT/how-to-playback-recorded-video-using-milestone-onvif-bridge?t=1501678728135

The question is : can I get a stream URI for each recording returned by Onvif Bridge, or can I specify a datetime value to play the

“main” stream (rtsp://:554/vod/) from ?

Any help is appreciated, thank you.

We do not have specific URI for specific sequences or clips.

We support the standard RTSP ‘PLAY’ command for navigating to a specific time. Please check out our ONVIF Bridge gettings started guide available on our web site, on pages 20 -22 you have some samples of how to construct the PLAY commands.

Thank you for your reply.

I need to be able to play a part of the recording that corresponds to the time it was recorded. For example, if I get this recording information node from the Onvif Bridge :

      <tt:RecordingInformation>
        <tt:RecordingToken>6b8b54b3-459a-421b-b1ab-e6f4b260f638</tt:RecordingToken>
        <tt:Source>
         <tt:SourceId>http://www.w3.org/2005/08/addressing/anonymous</tt:SourceId>
         <tt:Name>recording</tt:Name>
         <tt:Location>Location Description</tt:Location>
         <tt:Description>Source Description</tt:Description>
         <tt:Address>http://www.w3.org/2005/08/addressing/anonymous</tt:Address>
        </tt:Source>
        <tt:EarliestRecording>2017-08-04T06:54:19Z</tt:EarliestRecording>
        <tt:LatestRecording>2017-08-04T06:55:42Z</tt:LatestRecording>
        <tt:Content>Content Description</tt:Content>
        <tt:Track>
         <tt:TrackToken>v15</tt:TrackToken>
         <tt:TrackType>Video</tt:TrackType>
         <tt:Description>Description</tt:Description>
         <tt:DataFrom>2017-08-04T06:54:19Z</tt:DataFrom>
         <tt:DataTo>2017-08-04T06:55:42Z</tt:DataTo>
        </tt:Track>
        <tt:RecordingStatus>Recording</tt:RecordingStatus>
      </tt:RecordingInformation>

I’d expect to be able to play the recording from 2017-08-04T06:54:19Z to 2017-08-04T06:55:42Z, since I don’t have a way to know what relative time of the video (in seconds) corresponds to those absolute datetimes returned by the Onvif Bridge.

Hi Anne,

FindRecordings returns EarliestRecording time, which you can use to calculate the relative time in seconds. In this case you have only one recording, so the relative start time is 0. Provide this value to RTSP range header:

Range: npt=0-\r\n

Hi Anne,
2017-08-04T06:54:19Z corresponds to relative time 0.
2017-08-04T06:55:42Z - to relative time 83 seconds.
You could also seek an by absolute time. It is described here:
https://developer.milestonesys.com/s/question/0D50O00003X1EZnSAN/onvif-bridgertsp-server-reverse-playback-and-gototime-support?t=1502110891746