Slow Encoding Issue with Gstreamer Jpegenc

stefan cervo scerveau at gmail.com
Sun Jul 23 10:29:50 UTC 2023


Hello,

You might give a try to v4l2jpegenc element as jpegenc might be too slow for the given resolution 4192*3120.

You might need some special imx8 package to use this element.

Regards

Stephane 

> Le 23 juil. 2023 à 06:38, Sulthan Amanu via gstreamer-devel <gstreamer-devel at lists.freedesktop.org> a écrit :
> 
> 
> 
> Dear Team,
> 
> I hope this email finds you well. I am writing to seek your assistance in resolving a performance issue related to the Gstreamer pipeline with the Jpegenc element. I have been working on capturing frames from an imx8 board camera device and encoding them using Gstreamer. However, when I use the Jpegenc element, I am experiencing a significant decrease in the frame rate.
> 
> Below, I have provided three different pipeline commands and their corresponding frame rates:
> 
> 1. Without Jpegenc (Frame Rate: 8)
> 
> gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=4192,height=3120 ! videoconvert ! tee name=t ! queue ! fpsdisplaysink sync=false
> 
> =false4192,height=3120 ! videoconvert ! tee name=t ! queue ! fpsdisplaysink sync 
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ^Chandling interrupt.
> Interrupt: Stopping pipeline ...
> Execution ended after 0:00:44.370671000
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Total showed frames (357), playing for (0:00:44.370925250), fps (8.046).
> 
> 2. With Tee branch and without jpegenc (Frame Rate: 4.6)
> 
> gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=4192,height=3120 ! videoconvert ! tee name=t ! queue ! fpsdisplaysink sync=false t. ! queue  ! fakesink
> 
> etting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ^Chandling interrupt.
> Interrupt: Stopping pipeline ...
> Execution ended after 0:00:33.713813875
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Total showed frames (156), playing for (0:00:33.714091500), fps (4.627).
> Freeing pipeline ...
> 
> 3. With Jpegenc (Frame Rate: 0.4)
> 
> gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=4192,height=3120 ! videoconvert ! tee name=t ! queue ! fpsdisplaysink sync=false t. ! queue ! jpegenc ! fakesink
> 
> =false t. ! queue ! jpegenc ! fakesink! tee name=t ! queue ! fpsdisplaysink sync 
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ^Chandling interrupt.
> Interrupt: Stopping pipeline ...
> Execution ended after 0:00:23.952335250
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Total showed frames (14), playing for (0:00:23.952648750), fps (0.584).
> 
> The following elements are affected by the fakesink and fpsdisplaysink.
> 
> As you can see, the frame rate drops significantly when using Jpegenc. I have even tried adjusting the `idct-method` and `quality` properties, but the results are not as expected.
> 
> The details of my system are as follows:
> - Gstreamer version: 1.14
> - Linux version: Bionic
> 
> I am seeking your expertise to help identify the cause of this slowdown and suggest possible solutions to resolve the issue. Your assistance in this matter is highly appreciated.
> 
> Looking forward to your prompt response.
> 
> Thank you and best regards,
> Sulthan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230723/2f09cb15/attachment.htm>


More information about the gstreamer-devel mailing list