Hi, I have done some test on jetson-utils video-viewer with Nsight System.
And I found that status of plugin nvv4l2decoder is quite different:
When it is 4k, there is long time block ‘ppoll’ in every period.
Meanwhile, I have done test with gst-launch-1.0 with 4k & 8k.
Both of them can not get a smooth video.
I can not understand the timeline of this program, it is more complicated. nvv4l2decoder in gst-launch-1.0 is not similar with that in video-viewer .
The parameter I used is like: rtspsrc protocols=tcp location=rtsp://10.98.32.1/live_stream latency=0 ! rtph265depay ! h265parse ! nvv4l2decoder ! nvvidconv ! video/x-raw,format=BGRx ! nv3dsink
Hi,
For decoding 8K resolution, it takes significant usage of decoder, so it may take more time in decoding the frames. By default the decoder runs in blocking mode so it is blocked in queuing buffers in output plane.
In the step, it converts decoded NVMM buffer(in I420) to BGRx, and then copy to CPU buffer. It occupies significant CPU loading and can be performance bottleneck.
And I changed camera resolution to 2k, using gst-launch-1.0 -v rtspsrc protocols=tcp location=rtsp://10.98.32.1/live_stream latency=0 ! rtph265depay ! h265parse ! nvv4l2decoder enable-max-performance=1 ! nv3dsink
still there was no image showed.
And here is the log. test_Gst_2k_0922.txt (72.3 KB)
Then I add ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)NV12' before nv3dsink, 2k image can be shown correctly .
And when testing using /opt/nvidia/deepstream/deepstream-6.1/samples/streams/sample_1080p_h265.mp4, the format is NV12.
It seems that format P010_10LE is not supported by nv3dsink?
I don’t know why nvv4l2decoder sometimes outputs NV12, but sometimes outputs P010_10LE.
Maybe reason is the bit width of the source?
The 2k sample file is 8bit, and rtsp stream I have is 10bit.
And I found out by using gst-launch-1.0 -v rtspsrc protocols=tcp location=rtsp://10.98.32.1/live_stream latency=0 ! rtph265depay ! h265parse ! nvv4l2decoder enable-max-performance=1 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)NV12' ! nv3dsink
sometimes 8k video could be shown smoothly after about 10 seconds, but most of the time, it went stuck like this:
Hi,
Did not notice the h265 stream can be 10-bit YUV. You are correct the nv3dsink does not support 10-bit YUV and has to convert the frame data to 8-bit YUV for rendering.
I found VIC in other place: /sys/devices/platform/13e40000.host1x/15340000.vic
(I am not sure if this is the right one)
So I run echo on > /sys/devices/platform/13e40000.host1x/15340000.vic/power/control
The result was permission denied.
Then I trid to use sudo, the result was the same.
And I noticed that you have add sync = 0 at last.
If I add sync = 0 after nv3dsink, 8K images can be shown smoothly even without setting VIC parameter.
I could not find parameter of nv3dsink from the document.
Could please introduce why add this parameter?
Hi, @DaneLLL ,
I use sudo tegrastats to check the frequency of VIC.
The result shows that commands for VIC actually work (115->729).
But nv.sh is not work (still 115).