0

We've inherited an application in which there are four possible camera streams but with only one viewed at any given time. The streams are known in advance and the URLs do not change.

It has a separate window for each stream, but the non-display ones are hidden.

At the moment. it totally shuts down non-display RTSP sessions when they're hidden, apparently to avoid too much network traffic since it's running in a lower-bandwidth environment.

However, this means the latency of switching between cameras can be several seconds as the entire pipeline gets reconstructed.

So I'm wondering whether it would be a better idea to keep all the sessions up but simply pause the non-display ones rather than tearing them down. A resume would probably have far less latency, at most waiting for the next I-frame (less than a second the way we have it set up).

However, I need to confirm that an RTSP pause causes the actual data provider (camera) to stop sending the frames, or whether it's a local command to stop rendering the frames that are still coming in.

If the former, we can improve latency with no effect on traffic, but the latter would involve quadrupling traffic, not something we want to entertain :-)

2
  • Rtsp stop is send to camera. If there are implemented correctly the should stop. Just look at wireshark. Since you are using gstreamer why Not Just stop Pipeline unlink rtspsrc. Then on resume relink and start Pipeline. I do this in a old Project and the latency for switching was not noticable. Setup/connect Session is sure not the problem about latency.
    – Christoph
    Commented Jun 30 at 19:40
  • Is the Pipeline on Client Just for Viewing or why Takes it serval Seconds to reconstruct ?
    – Christoph
    Commented Jun 30 at 19:47

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.