First, I expected that vaapipostproc works on GPU and I can reduce CPU usage, but CPU usage is same as videoconvert.
Is there any difference?
Thanks for reaching out. Trying to answer your question, in general vaapipostproc element has better performance since it uses VA Surface. VA Surface is a memory in GPU which avoids copying from GPU to CPU during the process. But VA Surface requires hardware support (the hardware must support video process).
Since it requires VA Surface at the input(src pad), if vaapipostproc has an element which outputs a system memory, copying would happen and performance would be worse. So if you decide to use vaapipostproc make sure to use an element that outputs a VA Surface, for example, vaapih264dec, or any element under VAAPI plugin: https://gstreamer.freedesktop.org/documentation/vaapi/index.html?gi-language=cgstdiscoverer10.
As for the videoconvert element, it works on CPU and it generally has better compatibility to any hardware. Hope this answers your question.