Unable to test the deepstream-test1-app,please help me

My system:
Ubuntu 20.04
Tesla T4
Driver: 470.47
CUDA 11.1
cuDNN 8.1
TensorRT 7.2
DeepStream SDK 5.1.0

I am new to deepstream and am trying to run a sample application. When I try to run deepstream-test1-app sample_720p.h264ls, the output is as follows:

Could not find group property
** ERROR: <gst_nvinfer_parse_config_file:1260>: failed
Now playing: sample_720p.h264
pci id for fd 16: 1013:00b8, driver (null)
MESA-LOADER: failed to open cirrus (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: cirrus
0:00:00.224501537 74902 0x5594629fc980 WARN nvinfer gstnvinfer.cpp:769:gst_nvinfer_start: error: Configuration file parsing failed
0:00:00.224536489 74902 0x5594629fc980 WARN nvinfer gstnvinfer.cpp:769:gst_nvinfer_start: error: Config file path: dstest1_pgie_config.txt
Running…
ERROR from element primary-nvinference-engine: Configuration file parsing failed
Error details: gstnvinfer.cpp(769): gst_nvinfer_start (): /GstPipeline:dstest1-pipeline/GstNvInfer:primary-nvinference-engine:
Config file path: dstest1_pgie_config.txt
Returned, stopping playback
Deleting pipeline

Please help to make this run…thanks.

nvinfer configuration file parsing failed.

Could not find group property
** ERROR: <gst_nvinfer_parse_config_file:1260>: failed

Did your configuration have below:
[property]

Hello, I deleted the content in the config file before, so there is no property. Later, after I modified the config.txt, the following problems now appear:

Segmentation fault (core dumped)

My config file looks like this:

[property]
gpu-id=0
net-scale-factor=0.0039215697906911373
model-file=…/…/…/…/samples/models/Primary_Detector/resnet10.caffemodel
proto-file=…/…/…/…/samples/models/Primary_Detector/resnet10.prototxt
labelfile-path=…/…/…/…/samples/models/Primary_Detector/labels.txt
int8-calib-file=…/…/…/…/samples/models/Primary_Detector/cal_trt.bin
batch-size=1
network-mode=1
num-detected-classes=4
interval=0
gie-unique-id=1
output-blob-names=conv2d_bbox;conv2d_cov/Sigmoid

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=3
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0

[class-attrs-all]
threshold=0.2
eps=0.2
group-threshold=1

I use SSH to connect to the server, I hope to save the results as a file, and then download to the local computer to display, how do I operate, thank you very much

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=3
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0

these are for deepstream-app configuration, you should not put it under nvinfer configuration, please remove it. do not remove any property within configuration, you can add comment at the beginning of the line.

I also modified the deepstream_test1_app.c file:

Before modification:
sink = gst_element_factory_make (“nveglglessink”, “nvvideo-renderer”);

After modification:
sink = gst_element_factory_make(“fakesink”, “fakesink”);

Hello,I still have the following errors after deleting:
Segmentation fault (core dumped)

Please use original nvinfer configuration try again.

Thank you, but there is a new error:

Error: Could not parse model file path
Failed to parse group property
** ERROR: <gst_nvinfer_parse_config_file:1260>: failed
Now playing: sample_720p.h264
pci id for fd 16: 1013:00b8, driver (null)
MESA-LOADER: failed to open cirrus (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: cirrus
0:00:00.223206595 85600 0x55ecd2f11380 WARN nvinfer gstnvinfer.cpp:769:gst_nvinfer_start: error: Configuration file parsing failed
0:00:00.223251122 85600 0x55ecd2f11380 WARN nvinfer gstnvinfer.cpp:769:gst_nvinfer_start: error: Config file path: dstest1_pgie_config.txt
Running…
ERROR from element primary-nvinference-engine: Configuration file parsing failed
Error details: gstnvinfer.cpp(769): gst_nvinfer_start (): /GstPipeline:dstest1-pipeline/GstNvInfer:primary-nvinference-engine:
Config file path: dstest1_pgie_config.txt
Returned, stopping playback
Deleting pipeline

Check if it exist.

Sorry, I forgot to modify the path, but after the modification is completed, the problem is the same again.

The output is as follows:
Warn: ‘threshold’ parameter has been deprecated. Use ‘pre-cluster-threshold’ instead.
Now playing: sample_720p.h264
pci id for fd 16: 1013:00b8, driver (null)
MESA-LOADER: failed to open cirrus (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: cirrus
0:00:00.223402436 86270 0x5646cd1ac380 INFO nvinfer gstnvinfer.cpp:619:gst_nvinfer_logger: NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:1716> [UID = 1]: Trying to create engine from model files
Warning, setting batch size to 1. Update the dimension after parsing due to using explicit batch size.
INFO: …/nvdsinfer/nvdsinfer_func_utils.cpp:39 [TRT]: Reading Calibration Cache for calibrator: EntropyCalibration2
INFO: …/nvdsinfer/nvdsinfer_func_utils.cpp:39 [TRT]: Generated calibration scales using calibration cache. Make sure that calibration cache has latest scales.
INFO: …/nvdsinfer/nvdsinfer_func_utils.cpp:39 [TRT]: To regenerate calibration cache, please delete the existing one. TensorRT will generate a new calibration cache.
WARNING: …/nvdsinfer/nvdsinfer_func_utils.cpp:36 [TRT]: TensorRT was linked against cuBLAS/cuBLAS LT 11.3.0 but loaded cuBLAS/cuBLAS LT 11.2.1
INFO: …/nvdsinfer/nvdsinfer_func_utils.cpp:39 [TRT]: Some tactics do not have sufficient workspace memory to run. Increasing workspace size may increase performance, please check verbose output.
INFO: …/nvdsinfer/nvdsinfer_func_utils.cpp:39 [TRT]: Detected 1 inputs and 2 output network tensors.
WARNING: …/nvdsinfer/nvdsinfer_func_utils.cpp:36 [TRT]: TensorRT was linked against cuBLAS/cuBLAS LT 11.3.0 but loaded cuBLAS/cuBLAS LT 11.2.1
0:00:10.574137697 86270 0x5646cd1ac380 INFO nvinfer gstnvinfer.cpp:619:gst_nvinfer_logger: NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:1749> [UID = 1]: serialize cuda engine to file: /opt/nvidia/deepstream/deepstream-5.1/samples/models/Primary_Detector/resnet10.caffemodel_b1_gpu0_int8.engine successfully
WARNING: …/nvdsinfer/nvdsinfer_func_utils.cpp:36 [TRT]: TensorRT was linked against cuBLAS/cuBLAS LT 11.3.0 but loaded cuBLAS/cuBLAS LT 11.2.1
INFO: …/nvdsinfer/nvdsinfer_model_builder.cpp:685 [Implicit Engine Info]: layers num: 3
0 INPUT kFLOAT input_1 3x368x640
1 OUTPUT kFLOAT conv2d_bbox 16x23x40
2 OUTPUT kFLOAT conv2d_cov/Sigmoid 4x23x40

0:00:10.579825356 86270 0x5646cd1ac380 INFO nvinfer gstnvinfer_impl.cpp:313:notifyLoadModelStatus: [UID 1]: Load new model:dstest1_pgie_config.txt sucessfully
Running…
Segmentation fault (core dumped)

Thank you,

Latest running results:

Running…
Frame Number = 0 Number of objects = 6 Vehicle Count = 4 Person Count = 2
0:00:10.646528224 133372 0x55e9381ac300 WARN nvinfer gstnvinfer.cpp:1984:gst_nvinfer_output_loop: error: Internal data stream error.
0:00:10.646550751 133372 0x55e9381ac300 WARN nvinfer gstnvinfer.cpp:1984:gst_nvinfer_output_loop: error: streaming stopped, reason not-negotiated (-4)
ERROR from element primary-nvinference-engine: Internal data stream error.
Error details: gstnvinfer.cpp(1984): gst_nvinfer_output_loop (): /GstPipeline:dstest1-pipeline/GstNvInfer:primary-nvinference-engine:
streaming stopped, reason not-negotiated (-4)
Returned, stopping playback
Deleting pipeline

Thanks for your answer to me

Please make sure you have display exported before you run. since test1 use nveglglessink which require display.
export DISPLAY=:0 or 1 //xrandr to check if display exported success or not.

export DISPLAY=:0

Frame Number = 0 Number of objects = 6 Vehicle Count = 4 Person Count = 2
0:00:02.349709901 139214 0x5632dc366f00 WARN nvinfer gstnvinfer.cpp:1984:gst_nvinfer_output_loop: error: Internal data stream error.
0:00:02.349734731 139214 0x5632dc366f00 WARN nvinfer gstnvinfer.cpp:1984:gst_nvinfer_output_loop: error: streaming stopped, reason not-negotiated (-4)
ERROR from element primary-nvinference-engine: Internal data stream error.
Error details: gstnvinfer.cpp(1984): gst_nvinfer_output_loop (): /GstPipeline:dstest1-pipeline/GstNvInfer:primary-nvinference-engine:
streaming stopped, reason not-negotiated (-4)
Returned, stopping playback
Frame Number = 1 Number of objects = 6 Vehicle Count = 4 Person Count = 2
Deleting pipeline

Run xrandr:
Can’t open display :0

export DISPLAY=:1

Running…
Segmentation fault (core dumped)

Run xrandr:
RandR extension missing

How can I do it?
thank you very much!!!

Excuse me, how do I change the receiver of deepstream-test1-app to Fakesink

T4 dedicated for computing, not for display. you can change sink type to fakesink, or File, or rtspstreaming.

Since you are on dGPU platform, you can directly change nveglglessink to fakesink.

  • sink = gst_element_factory_make (“nveglglessink”, “nvvideo-renderer”);
  • sink = gst_element_factory_make (“fakesink”, “nvvideo-renderer”);

Now my code is okay, but how do I change it to Filesink? I want to save the result as a video and download it to my local computer.

You can use deepstream-app which have configuration about save to file.
[sink1]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265
codec=1
#encoder type 0=Hardware 1=Software
enc-type=0
sync=0
#iframeinterval=10
bitrate=2000000
#H264 Profile - 0=Baseline 2=Main 4=High
#H265 Profile - 0=Main 1=Main10
profile=0
output-file=out.mp4
source-id=0

hi,I am using deepstream-test1-app. Modifying the config does not work. I am now modifying the following code:
before fixing
sink = gst_element_factory_make (“fakesink”, “nvvideo-renderer”);
g_object_set (G_OBJECT(sink), “sync”, FALSE, NULL);

After modification:
sink = gst_element_factory_make (“filesink”, “nvvideo-renderer”);
g_object_set (G_OBJECT (sink), “location”, “splitvideo.mp4”, NULL);

But when the execution reaches the 5th frame, the program stops:
Running…
Frame Number = 0 Number of objects = 6 Vehicle Count = 4 Person Count = 2
Frame Number = 1 Number of objects = 6 Vehicle Count = 4 Person Count = 2
Frame Number = 2 Number of objects = 6 Vehicle Count = 4 Person Count = 2
Frame Number = 3 Number of objects = 6 Vehicle Count = 4 Person Count = 2

How can I modify it, thanks for your answer

Filesink is not one element, you can not directly use it. you can refer to sources/apps/apps-common/src/deepstream_sink_bin.c function create_encode_file_bin