Usb相机出图丢帧问题

你好,

硬件连接情况:

CSI接了4路鱼眼相机。

pcie转usb hub, usb hub 转mipi 接了一路sony imx586 sensor

现在出现了一个问题:

  1. 当我使用下面指令存储鱼眼视频流 ,gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=30000 gainrange=“1 1” ! “video/x-raw(memory:NVMM), format=(string)NV12, width=(int)960, height=(int)960” ! nvvidconv ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=test0.mp4 &

    gst-launch-1.0 nvarguscamerasrc sensor-id=1 num-buffers=30000 gainrange=“1 1” ! “video/x-raw(memory:NVMM), format=(string)NV12, width=(int)960, height=(int)960” ! nvvidconv ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=test1.mp4 &

    gst-launch-1.0 nvarguscamerasrc sensor-id=2 num-buffers=30000 gainrange=“1 1” ! “video/x-raw(memory:NVMM), format=(string)NV12, width=(int)960, height=(int)960” ! nvvidconv ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=test0.mp4 &

    gst-launch-1.0 nvarguscamerasrc sensor-id=3 num-buffers=30000 gainrange=“1 1” ! “video/x-raw(memory:NVMM), format=(string)NV12, width=(int)960, height=(int)960” ! nvvidconv ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=test1.mp4 &

使用v4l2-ctl -d /dev/video4 --stream-mmap 获取586视频流, 586出现了丢帧的现象。

  1. 当我使用下面获取鱼眼视频流时 ,v4l2-ctl -d /dev/video0 --stream-mmap v4l2-ctl -d /dev/video1 --stream-mmap v4l2-ctl -d /dev/video2 --stream-mmap v4l2-ctl -d /dev/video3 --stream-mmap 使用 v4l2-ctl -d /dev/video4 --stream-mmap 获取586视频流,不会丢帧。

查看系统资源,都正常。而且没有运行大负载的程序。

Do you boost the clocks to try?

sudo nvpmodel -m {MaxN}
sudo jetson_clocks
sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee  /sys/kernel/debug/bpmp/debug/clk/isp/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate

试过了,现象一样没有改善。 默认上电也是MaxN ,我也试过25W。 时钟也按您的建议试过了, 还是当mipi 鱼眼启动的时候会导致usb3.0 相机丢帧

Could you try fake sink instead of filesink like below command.

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)960, height=(int)960' ! nvvidconv ! fpsdisplaysink video-sink=fakesink

实际上在运行时,我也看到了cpu和mem占用并不高。我们也进行了如下测试,单纯只启动v4l2-ctrl -d /dev/video4 —stream-mmap 时,然后

stress-ng -c 0 -l 90 压力给cpu跑满,这样也不会出现丢帧。

Argus would need more CPU/MEM resource that could be the root cause.

从nx端看,

camera sensor→经过mipi→mipi转usb模块→经过usb3.0→pcie转usb hub模块 →经过pcie →orin nx

4* fisheye →经过mipi→orin nx

这两个数据走的路径完全不一样,不太明白怎么会有这种影响。

单独测试usb camera sensor ,怎么加压力测试也不丢帧。

Suppose it could be memory bandwidth if stress CPU without problem.

Suppose it could be memory bandwidth is stress CPU without problem. 我该怎么验证这个呢。但是我在执行这些程序的时候,通过free -h或者jtop查看mem占用并不高

Can reduce the output size to check.

能详细说下吗?输出大小指什么?

The sensor output resolution.

您是指fisheye 降低分辨率还是usb camera降低分辨率。我的理解是5路相机出图,orin nx性能应该是足够的吧?

Both of them if able to config.

We have tried using 640 * *480, and no data is lost. What does this indicate? We still need to use 1920**1080 later。

It’s USB3 camera?

yes , usb3.0

There is no update from you for a period, assuming this is not an issue anymore.
Hence, we are closing this topic. If need further support, please open a new one.
Thanks
~0225

Is this still an issue to support? Any result can be shared?