Decode problem when using nvv4l2decoder

I used gstreamer as shown below to receive a stream from an ipcam.

gst-launch-1.0 rtspsrc location=rtsp://192.168.0.115:554/live latency=250 ! rtph264depay ! nvv4l2decoder ! autovideosink

When using “nvv4l2decoder” as above, it seemed to be decoding only the I frame.
At this time, there was no problem with the latency being only 600ms.

But, When using “avdec_h264” as below, There was no problem even if I set the latency to 0ms.
gst-launch-1.0 rtspsrc location=rtsp://192.168.100.2:554/live latency=0 ! rtph264depay ! h264parse ! queue ! avdec_h264 ! autovideosink

When I checked, the SEI field of H.264 was empty in the ipcam. Is the SEI field a problem?
If it is a problem, which of the SEI fields is important?

Hi,
Decoding begins from IDR frames, so you may try to set small IDR interval to the IP camera, such as 30 or 15. And please

  1. Add h264parse
  2. Use nv3dsink sync=0
gst-launch-1.0 rtspsrc location=rtsp://192.168.0.115:554/live latency=250 ! rtph264depay ! h264parse ! nvv4l2decoder ! nv3dsink sync=0

To give it a try and see if there is further improvement.

I tried it. But, It did not resolve
By setting sync=0, more frames are visible, but the result is the same.

Hi,
Please set disable-dpb to nvv4l2decoder and try. It may reduce latency but please note certain complex streams may not be well decoded with the setting.

Hi.

It solved after add set disable-dpb.
thank you

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.