Video render performance
nicolas at ndufresne.ca
Thu Nov 26 18:20:42 UTC 2020
Le mercredi 25 novembre 2020 à 08:43 +0000, Soebirk, Thorsten a écrit :
> I’m working on an application that renders video streamed via WebRTC, and I am
> a little puzzled by the amount of CPU and GPU that this uses. The pipeline is
> basically as follows:
> webrtcbin ! queue ! glimagesink
> While streaming an HD video source, my application (on Windows) is using appr.
> 10% CPU and 25% GPU. If I view the exact same WebRTC stream in the Chrome
> browser, it uses appr 4% CPU and 0% GPU.
> I know the absolute number given here mean nothing, but I am struck by the
> fact that Chrome can render this using half the CPU and without using the GPU
> at all.
> I am fairly certain that the resources are consumed in glimagesink and not the
> other elements of the pipeline, because if I replace glimagesink with
> fakesink, then my application’s resource consumption essentially goes to zero.
> Also, if I insert a caps filter before the sink to reduce the resolution, this
> also reduces total resource usage, despite being an additional processing
> I’ve also tried replacing glimagesink with d3dvideosink. Both use roughly the
> same resources.
> Given that Chrome is likely highly optimized for this particular use case
> where Gstreamer is a much more general framework, I would not necessarily
> expect performance parity in this case, but does anyone have any suggestions
> for possibly reducing resource usage while maintaining video quality and
> resolution in this scenario? I’m also struggling to understand why glimagesink
> and d3dvideosink would be using the GPU at all (much less so heavily) when
> Chrome seems to do entirely without.
I believe you will have to look forward using the new (in gstreamer master)
d3d11 elements to try and get close to a match.
> / Thorsten
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gstreamer-devel