High CPU usage decoding 4K 60fps video

Michiel Konstapel michiel at aanmelder.nl
Tue Jul 26 09:55:05 UTC 2022


On 26-07-2022 09:36, Sergio González via gstreamer-devel wrote:
> Dear All,
>
> I am having an issue when using gstreamer to decode 4K 60fps video in 
> a custom app.
>
> The pipeline's structure is as follows:
>
> appsrc ! queue ! typefind ! h265parse ! capsfilter ! avdec_h265 ! 
> queue ! videoconvert ! queue ! appsink
>
> What I am observing is that when I push buffers to the appsrc, if the 
> decoding components are linked, there is a high surge of CPU 
> consumption (as in, 12 of the 16 cores are at 100%). However, if on 
> the same machine I just execute the same pipeline with gst-launch, the 
> cpu usage is way more reasonable and the decoding goes smoothly.
>
> Adding a Probe to the sink and the source pads of the avdec_h265 tells 
> me that the time between decoding buffers at the beginning is of about 
> 200ms, but as app keeps decoding, it soon reaches 600ms.
>
> Do you have some insight on what might cause this? Maybe I am missing 
> some property in some of the components?
>
> Any help would be much appreciated. Let me know if you need any more 
> information.
>
> Cheers,
> Sergio


When running with gst-launch, what source do you use? One difference 
might be how you are feeding data to the appsrc. It might also help to 
increase the queue sizes, especially after the decoder; a 4K raw video 
frame will be larger than the default queue max-size-bytes 
<https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-queue.html#GstQueue--max-size-bytes> 
so it will only hold one frame. I would set it to zero so it's only 
limited by time and buffers, so you get some more concurrency in the 
pipeline. However, that doesn't explain the difference between your two 
cases; when running from the command line the queue would be just as big.

HTH,
Michiel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220726/f4db3c5f/attachment.htm>


More information about the gstreamer-devel mailing list