Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) Tesla P100
• DeepStream Version 5
• NVIDIA GPU Driver Version (valid for GPU only) 440+
The experiment runs the deepstream-test5 application on a single rtsp source which sends limited number of frames to the pipeline (around 300). The pipeline contains only a primary detector apart from the required components. The application runs in the docker container from ngc.
Changes made in the default application
- Probe added to the rtspsrc element to get info of the frames received by the application.
- Custom logs added in various points in the pipeline.
Following is my observation.
- The application do not process a few starting frames received from the rtsp source (For example: for my video source out of 323 frames only 73 frames are processed)
- The above number might vary from source to source.
- For some rtsp sources the application starts instantly, however, for some sources the application starts processing late, like in the first point.
- Just to clarify, all these 323 frames are captured by the application (checked by adding a probe to the rtsp source), but somehow are not processed or dropped.
- On further looking at element wise logs, the issue occurs due to decodebin element, specifically, the nvv4l2decoder element. All elements before nvv4l2decoder received all 300 frames, but the nvv4l2decoder element only forwards 73 frames.
application_custom.log (125.1 KB)
The following logs are my custom logs along with nvstreammux gstreamer logs to get idea of what is happening. In this file, the logs corresponding to deepstream_source_bin.cpp:1290:deepstream_process_rtp_buffer is the probe on the rtspsrc, hence it displays all the incoming packets. The output log after processing is mentioned by deepstream_app_main.cpp:524:bbox_generated_probe_after_analytics <frame_no>. The frame no in the above 2 logs might not corresponding to the same value, but just represent S.No for the incoming and outgoing frames. As you can see, the number of frames received is 323 however, the processed frames are only 73, and these are the last 73 frames from the rtsp source.
I was able to reduce the starting latency by setting latency parameter in source for rtsp with tcp protocol. However, the following parameter did not work for the rtsp streams over udp protocol.
- How can I reduce the latency of the nvv4l2decoder element? I need to ensure all the elements captured by the rtspsrc element should be processed.