No duplicate Frames

Hello,

I have a working application using G-Streamer to send video streams to an appsink which will then be send via WebRTC to a media server. The video stream I am sending is the screen captue of a medical device. The stream itself is 1920x1080 with 30 fps. The screen capture refreshes very infrequently, there is time frames where there is no new picture since it is just showing e.g. the desktop. To save bandwidth and decoding on the receiving end I would like to only send frames when its different from the previous. In order to to keep the stream alive I would like to send at least one frame per second.

I checked a little bit around and it seems there is no plugin that I can use to build this.

What are your recommendations to build something like this?

I’m not an expert in video pipelines but these are my opinions on this:

You could handle this in your application, before inserting the data into the appsrc. This would require some trickery in the pipeline with variable fps and so on.

But: This also sounds like an optimization in the wrong place. The thing that needs to keep the bandwidth down is the encoder, which will only send diffs to the client which are very small if nothing changes. You should look into the settings there and tweak them first.

For bandwidth I see that, but I still need to decode 30 fps, which is not possible on the receiving end since multiple streams are received there.