@ShaneCCC,
No, the bottleneck is not filesink, got same results with fakesinks after encoders.
I did upgrade my AGX with apt, it was less than 2 months late.
Surprizingly, now remote connecting with ssh -X or -Y no longer allows using nvarguscamerasrc:
gst-launch-1.0 -ev nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, framerate=30/1' ! fakesink
nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1
GST_ARGUS: Creating output stream
(Argus) Error NotSupported: Failed to initialize EGLDisplay (in src/eglutils/EGLUtils.cpp, function getDefaultDisplay(), line 77)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89)
(Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadInitialize:247 Failed to create FrameConsumer
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:188 (propagating)
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Is this expected ? How can we use X11 forwarding with nvarguscamerasrc ?
@jheager2,
On the other hand, logging in with ssh without X11 forwarding, it works now @30 fps, tested up to 8 pipelines:
gst-launch-1.0 -ev nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080, framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3840, height=2160, format=NV12' ! tee name=video ! queue ! fpsdisplaysink video-sink=fakesink text-overlay=false video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test1.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test2.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test3.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test4.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test5.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test6.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test7.mov video. ! queue ! nvv4l2h264enc maxperf-enable=1 control-rate=1 bitrate=2000000 preset-level=1 profile=0 ! h264parse ! qtmux ! filesink location=test8.mov
...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 17, dropped: 0, current: 32,17, average: 32,17
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 32, dropped: 0, current: 29,86, average: 31,04
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 47, dropped: 0, current: 29,70, average: 30,60
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 63, dropped: 0, current: 30,33, average: 30,53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 78, dropped: 0, current: 29,97, average: 30,42
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 94, dropped: 0, current: 30,03, average: 30,35
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 109, dropped: 0, current: 29,97, average: 30,30
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 123, dropped: 0, current: 27,76, average: 29,99
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 140, dropped: 0, current: 32,18, average: 30,24
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 155, dropped: 0, current: 29,94, average: 30,21
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 171, dropped: 0, current: 30,04, average: 30,19
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 187, dropped: 0, current: 30,00, average: 30,18
So if it doesn’t work for you with an up-to-date AGX, the issue may be in cameras or video input.
Additional note: On Xavier NX (up-to-date), the same limitation of 4 pipelines for 30 fps remains, framerate decrease with more.