We would like to add the ability to set the playback time for RTSP recorded footage to the collaboration suite. This is a great feature for NVR's, CCTV or General Media. To do this, we need access to the PLAY method used after an RTSP stream is connected and setup. The Absolute Time value would need to be accessed and updated during the session as the user moves a timeline bar for example. Therefore a new ?URL connect parameter would not be sufficient. Do you have any thoughts on this?
Possible solutions include: Open source the RTSP portion of the Intel WebRTC Server stack or Create an additional proxy server between the WebRTC RTSP client and the NVR RTSP Server.
It is interesting topic. Could you help us to understand the requirement more clearly?
- Usually, the time is already embedded as part of video by RTSP source encoder, why we need addition timeline bar?
- What is the exact operation “PLAY method used after an RTSP stream is connected and setup”?
- In WebRTC sever side, we transcode all RTSP video input and convert to WebRTC protocol, so there is no WebRTC RTSP client. All clients receive WebRTC stream only.
- Is there any more detail introduction about this feature requirement, we can check if any opportunity to integration w/ our collaboration suite.
A timeline bar woyuld be a UI component that we would create in the web client, the 'time' data would have to be posted by WebRTC methods to the Intel WebRTC MCU server after an RTSP connection has already been established. This creates a better user experience for playback during a single session.
A typical and simplified RTSP client to server session is started through the following messages:
A PAUSE/PLAY sequence can occur at any point during the RTSP session. For playback, the Absolute Time can be embedded within the PLAY command:
Absolute Time is expressed as ISO 8601 timestamps, using Universal Coordinated Time (UTC) as the reference clock. Fractions of a second may also be indicated:
utc-range = "clock" "=" utc-time "-" [ utc-time ]
utc-time = utc-date "T" utc-time "Z"
utc-date = 8DIGIT ; < YYYYMMDD >
utc-time = 6DIGIT [ "." fraction ] ; < HHMMSS.fraction >
As an example, if we wanted to playback recorded media starting on the 8th of November, 1996 at 14.37 and 20 seconds and a quarter for a duration of 30 seconds, the UTC Absolute Time values would be:
Start = 19961108T143720.25Z
End = 19961108T143750.25Z
Example RTSP packet containing this parameter:
PLAY rtsp://192.168.0.1/path/to/recording RTSP/1.0
My understanding is the MCU must have an RTSP Client to open a connection to an RTSP server, PAUSE/PLAY sequences can then be issued to deliver playback described in RFC2326.
The alternative is to use a proxy between the MCU and RTSP server source.
Contact me to access the full report, it would be good to go offline to discuss this application model for command and control collaboration.
I will investigate the generic RTSP servers found in the common VMS manufacturers (Milestone, Genetec etc) this week and provide any further details.