But this pipeline throws the following error:
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: Internal data stream error.
Which makes sense. The output of nvarguscamerasrc is a video/x-raw(memory:NVMM). I’ve tried to use the nvtee, but that generates the same error. Is it possible to tee the image and do various processes to it?
That gives me the same error message:
root@maza2:~# GST_DEBUG=3 gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1’ ! nvvidconv flip-method=2 left=0 right=3840 top=0 bottom=2160 ! tee name=t ! queue ! omxh265enc control-rate=2 bitrate=20000000 iframeinterval=30 ! ‘video/x-h265, stream-format=(string)byte-stream’ ! h265parse ! matroskamux ! filesink location=test.mkv t. ! queue ! nvvidconv ! ‘video/x-raw, width=(int)3840, height=(int)2160, format=(string)GRAY8, framerate=(fraction)30/1’ ! fakesink
0:00:00.111819740 281242 0x558440f870 WARN omx gstomx.c:2822:plugin_init: Failed to load configuration file: Valid key file could not be found in search dirs (searched in: /root/.config:/etc/xdg as per GST_OMX_CONFIG_DIR environment variable, the xdg user config directory (or XDG_CONFIG_HOME) and the system config directory (or XDG_CONFIG_DIRS)
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
0:00:00.190225000 281242 0x5584510e30 FIXME default gstutils.c:4025:gst_pad_create_stream_id_internal:nvarguscamerasrc0:src Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
0:00:00.197348594 281242 0x5584510de0 FIXME videoencoder gstvideoencoder.c:736:gst_video_encoder_setcaps: GstVideoEncoder::reset() is deprecated
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
0:00:00.200200052 281242 0x5584510de0 WARN omxvideoenc gstomxvideoenc.c:1858:gst_omx_video_enc_set_format: Error setting temporal_tradeoff 0 : Vendor specific error (0x00000001)
NVMEDIA: H265 : Profile : 1
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 22.000000; Exposure Range min 8000, max 332402000;
GST_ARGUS: 1920 x 1080 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 22.000000; Exposure Range min 8000, max 332402000;
GST_ARGUS: 1280 x 720 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 22.000000; Exposure Range min 8000, max 332402000;
GST_ARGUS: 1280 x 540 FR = 240.000038 fps Duration = 4166666 ; Analog Gain range min 1.000000, max 22.000000; Exposure Range min 8000, max 332402000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 3840 H = 2160
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
0:00:01.300087187 281242 0x5584510e30 WARN basesrc gstbasesrc.c:3127:gst_base_src_loop: error: Internal data stream error.
0:00:01.300158750 281242 0x5584510e30 WARN basesrc gstbasesrc.c:3127:gst_base_src_loop: error: streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: Internal data stream error.
Additional debug info:
…/gstreamer-1.18.4/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0:
streaming stopped, reason error (-5)
0:00:01.300530104 281242 0x5584510e30 WARN queue gstqueue.c:990:gst_queue_handle_sink_event: error: Internal data stream error.
0:00:01.300584479 281242 0x5584510e30 WARN queue gstqueue.c:990:gst_queue_handle_sink_event: error: streaming stopped, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstQueue:queue1: Internal data stream error.
Additional debug info:
…/gstreamer-1.18.4/plugins/elements/gstqueue.c(990): gst_queue_handle_sink_event (): /GstPipeline:pipeline0/GstQueue:queue1:
streaming stopped, reason error (-5)
Execution ended after 0:00:01.108987187
Setting pipeline to NULL …
GST_ARGUS: Cleaning up
Sorry I missed that, but for recording to file with container, you may have to issue an End Of Stream so that everything correctly terminates and saves. Just add -e to gst-launch. Of course, the second pipeline to monochrome doesn’t display as it goes to fakesink: