This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: gstreamer v4l2h264enc performance

Part Number: TDA4VM

Hi.

I use the gstreamer api to test plugin v4l2h264enc performance. The pipeline like:

gst-launch videotestsrc ! video/x-raw,width=1920,height=1080,format=NV12,framerate=30/1 ! v4l2h264enc ! avimux ! filesink location=test.avi
gst-launch videotestsrc ! video/x-raw,width=1920,height=1080,format=xRGB,framerate=30/1 ! v4l2h264enc ! avimux ! filesink location=test.avi

The pipline which format=NV12 consumes 30% of CPU,  and pipeline which format=xRGB consumes 20% of CPU.

Is such a CPU load normal?  or Is thera a way to make CPU load lower?

And is v4l2h264enc plugin utilize the hardware-accelerated video encoding in the SDK 8.02?

Any advice would be appreciated.

Thanks

  • Hi liu,

    v4l2h264enc and v4l2h264dec uses hardware accelerator.

    The CPU load

    The pipline which format=NV12 consumes 30% of CPU,  and pipeline which format=xRGB consumes 20% of CPU.

    The cpu load 30% is for the complete gstreamer command and not how much v4l2h264enc uses alone. 

    one way to approximately measure is removing the components in gstreamer command which uses more cpu resources. For example, replace videotestsrc with filesrc and instead of  filesink, fakevideosink can be used.

    gst-launch-1.0 filesrc location=./test.yuv !  videoparse width=1920 height=1080 framerate=30/1 ! videoconvert !  video/x-raw,format=NV12 ! v4l2h264enc ! fakevideosink

    Regards

    Nikshith