Hi everyone,
I’m facing a performance issue with streaming from an IMX8MPlus camera using GStreamer. Here's what's happening:
Command 1: Fake Video Sink (Testing FPS)
gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-raw,format=GRAY8,width=1280,height=720,framerate=60/1 ! videoconvert ! fpsdisplaysink video-sink=fakevideosink sync=false
In this case, I’m just testing the FPS, and I get a stable ~106 FPS without any issues. Here's part of the debug log output:
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeVideoSink:fakevideosink0/GstFakeSink:sink: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = rendered: 56, dropped: 0, current: 110.36, average: 110.36
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 56, dropped: 0, current: 110.36, average: 110.36
Command 2: Autovideosink (Streaming)
gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-raw,format=GRAY8,width=1280,height=720,framerate=60/1 ! videoconvert ! fpsdisplaysink text-overlay=true video-sink=autovideosink sync=false
When I try to stream using autovideosink, the FPS drops drastically to ~7 FPS, and the streaming performance is really poor. Here’s the log output:
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstAutoVideoSink:autovideosink0/GstWaylandSink:autovideosink0-actual-sink-wayland: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = rendered: 5, dropped: 0, current: 9.77, average: 9.77
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 5, dropped: 0, current: 9.77, average: 9.77
Questions:
Any suggestions would be greatly appreciated!
Thanks!