Questions about Video API of Nx Witness

Comments

2 comments

  • Official comment
    Avatar
    Artem Zaytsev

    Hello Yuta.

     

    Q1. No. You are right that VMS server starts export from the closest key frame. You can not start export from arbitrary moment because the exported stream has to start from a key frame. You can transcode received stream to have a key frame at a convenient date/time.

    I am going to slightly disclose logic behind how VMS server chooses initial key frame to begin export from.

    - If there is no footage in archive at requested Pos, server searches forward on the timeline and starts export from the first key frame found.

    - If the requested footage is available, server searches for first available key frame backward on the timeline, or, if requested position points exactly to key frame, that key frame is used.

    Q2. No. But it can be quite easily implemented by feature request.

    Q3. No. VMS does not store frame rate in metadata, so the only way to know frame rate is to decode the stream.

    Q4. No, you Can not do it with URL parameters. But you can use Range RTSP header (As in RFC 2326 paragraph 12.29, but utc-range has slightly another semantics. Unlike in 3.7, utc-time is expressed in milliseconds since Unix Epoch).

    Q5. No, you can only obtain frame rate when you start decoding of video stream.

    Q6. Generally speaking, the less bitrate you cope with, the less CPU load is generated, so small picture is preferable here. Optimal format is MPEG-TS since it does not imply transcoding. For VMS 4.0 and later MP4 is more preferable.

    Q7. SFD parameter is implemented for clients to avoid usage of memory for storing cached content. It limits server's outbound streaming bitrate.

    Playback speed (with SFD=false) is not limited anyhow intentionally and has only environmental limits, such as CPU transcoding framerate, storage and network throughput.

  • Avatar
    Yuta Yamazaki

    Dear Artem,

     

    Thank you very much for your kind reply, which helped me a lot.

     

    Now, I'd like to make a further inquiry about Q2.

    If I send you a feature request, when is it possible for you, at the earliest, to release the newest version that implements the required function?

     

    I'll be waiting for your reply.

Please sign in to leave a comment.