Hi Allen,
In short - yes it is possible.
In details - it will require a little bit more work from your side.
There are two main cases, depending on what stream do you consume - live or playback.
For live streams you should calculate actual frame UTC time based on RTP time of the packet and RTCP information about RTP to UTC time relation.
You know in the RTP video steam every RTP frame has a timestamp. The RTP time starts from random value and is in 90 000 Hz units. From time to time RTSP server sends RTCP sender reports between RTP video frames. And for sure sends the first report right after the first RTP frame.
Looking in the spec you will see that every RTCP sender report contains both RTP time and NTP time. From here you will get this correspondence between RTP time and NTP (UTC) time. After that on every RTP video frame you will calculate the NTP time with this correspondence and relative increase of the RTP timestamp.
For the playback however is a little bit different. Mainly because you could make playback in both directions and with different speeds. You know Milestone RTSP server supports playback in range [-32 : 32]. Therefore in the playback (vod) all the RTP video frames contain ONVIF RTP header extension. Some people call it ABAC header extension. You could see it’s structure in the ONVIF-Streaming-Spec.pdf - point 6.3 - RTP header extension. In this extension you can find directly NTP timestamp of the frame.
I hope that clarifies the things a little bit !