IMX477 Stereo RTSP stream closing immediately on Jetson Nano

  1. Where did you get the camera module(s)?
    Arducam Amazon

  2. Model number of the product(s)?
    UC-512
    UC-517 x2

  3. What hardware/platform were you working on?
    Jetson Nano 4GB

  4. Instructions you have followed. (link/manual/etc.)
    Multi-Camera CamArray - Arducam Wiki
    video - Using Gstreamer to serve RTSP stream, working example sought - Stack Overflow

  5. Problems you were having?
    I’m trying to create an RTSP stream from a Jetson Nano over the local network. I’m using the stereo IMX
    Stream initializes, then immediately closes once I try to connect. GST_ARGUS says “Done Success” and proceeds with cleaning up.
    I can get the feed from the cameras to appear using the process described in the quick setup, but trying to stream it simply does not work. What am I doing wrong?

  6. The dmesg log from your hardware?

[    3.301147] systemd[1]: File /lib/systemd/system/systemd-journald.service:36 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    3.301156] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[    3.689338] random: systemd: uninitialized urandom read (16 bytes read)
[    3.689551] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    3.689650] random: systemd: uninitialized urandom read (16 bytes read)
[    3.691466] systemd[1]: Created slice User and Session Slice.
[    3.691498] random: systemd: uninitialized urandom read (16 bytes read)
[    3.691519] systemd[1]: Reached target Mounting snaps.
[    3.691554] systemd[1]: Reached target Mounted snaps.
[    3.691605] systemd[1]: Reached target User and Group Name Lookups.
[    4.055749] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
[    4.075729] nvgpu: 57000000.gpu           gm20b_init_clk_setup_sw:1268 [INFO]  GPCPLL initial settings: NA mode, M=1, N=34, P=3 (id = 1)
[    4.200126] systemd-journald[2002]: Received request to flush runtime journal from PID 1
[    4.209739] tegra_cec 70015000.tegra_cec: timeout in tegra_cec_native_write_l:172.
[    4.217368] tegra_cec 70015000.tegra_cec: Sent <Text View On> res: -62.
[    4.217372] tegra_cec 70015000.tegra_cec: tegra_cec_init Done.
[    4.463488] Adding 4194300k swap on /swapfile.  Priority:-1 extents:5 across:4489212k SS
[    5.497193] random: crng init done
[    5.500624] random: 7 urandom warning(s) missed due to ratelimiting
[    5.930382] tegra_soctherm 700e2000.soctherm: soctherm: trip temperature -2147483647 forced to -127000
[    5.930404] cpu-throttle-alert cooling device registered.
[    5.930533] tegra_soctherm 700e2000.soctherm: soctherm: trip temperature -2147483647 forced to -127000
[    5.930548] gpu-throttle-alert cooling device registered.
[    5.930735] tegra_soctherm 700e2000.soctherm: soctherm: trip temperature -2147483647 forced to -127000
[    5.930748] tegra_soctherm 700e2000.soctherm: soctherm: trip temperature -2147483647 forced to -127000
[    5.930760] hot-surface-alert cooling device registered.
[    6.728743] logitech-djreceiver 0003:046D:C52B.0003: hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-70090000.xusb-2/input2
[    6.982158] input: Logitech K400 Plus as /devices/70090000.xusb/usb1/1-2/1-2:1.2/0003:046D:C52B.0003/0003:046D:404D.0004/input/input2
[    6.983192] logitech-hidpp-device 0003:046D:404D.0004: input,hidraw1: USB HID v1.11 Keyboard [Logitech K400 Plus] on usb-70090000.xusb-2:1
[    9.304084] using random self ethernet address
[    9.308598] using random host ethernet address
[   13.543471] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   13.549614] eth0: 0xffffff800ac2e000, 48:b0:2d:2e:c9:5b, IRQ 405
[   13.607969] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   16.657801] r8168: eth0: link up
[   16.657918] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   17.037312] Mass Storage Function, version: 2009/09/11
[   17.037318] LUN: removable file: (no medium)
[   17.042273] using random self ethernet address
[   17.046839] using random host ethernet address
[   17.441562] rndis0: HOST MAC ba:a1:94:8a:61:94
[   17.441603] rndis0: MAC ba:a1:94:8a:61:95
[   17.442185] usb0: HOST MAC ba:a1:94:8a:61:96
[   17.442212] usb0: MAC ba:a1:94:8a:61:97
[   17.442231] tegra-xudc-new 700d0000.xudc: exiting ELPG
[   17.442968] tegra-xudc-new 700d0000.xudc: exiting ELPG done
[   17.442986] tegra-xudc-new 700d0000.xudc: ep 0 (type: 0, dir: out) enabled
[   17.443018] tegra-xudc-new 700d0000.xudc: entering ELPG
[   17.443228] tegra-xudc-new 700d0000.xudc: entering ELPG done
[   17.443253] tegra-xudc-new 700d0000.xudc: exiting ELPG
[   17.443750] tegra-xudc-new 700d0000.xudc: exiting ELPG done
[   17.443762] tegra-xudc-new 700d0000.xudc: entering ELPG
[   17.443983] tegra-xudc-new 700d0000.xudc: entering ELPG done
[   17.448620] l4tbr0: port 1(rndis0) entered blocking state
[   17.448625] l4tbr0: port 1(rndis0) entered disabled state
[   17.448803] device rndis0 entered promiscuous mode
[   17.454972] IPv6: ADDRCONF(NETDEV_UP): rndis0: link is not ready
[   17.459063] l4tbr0: port 2(usb0) entered blocking state
[   17.459067] l4tbr0: port 2(usb0) entered disabled state
[   17.459240] device usb0 entered promiscuous mode
[   17.463678] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[   19.648927] zram: Added device: zram0
[   19.650580] zram: Added device: zram1
[   19.651990] zram: Added device: zram2
[   19.653218] zram: Added device: zram3
[   19.673633] zram0: detected capacity change from 0 to 258441216
[   19.793952] Adding 252380k swap on /dev/zram0.  Priority:5 extents:1 across:252380k SS
[   19.798397] zram1: detected capacity change from 0 to 258441216
[   19.808246] Adding 252380k swap on /dev/zram1.  Priority:5 extents:1 across:252380k SS
[   19.811185] zram2: detected capacity change from 0 to 258441216
[   19.821379] Adding 252380k swap on /dev/zram2.  Priority:5 extents:1 across:252380k SS
[   19.824268] zram3: detected capacity change from 0 to 258441216
[   19.834541] Adding 252380k swap on /dev/zram3.  Priority:5 extents:1 across:252380k SS
[   21.765076] Bridge firewalling registered
[   22.385747] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[   25.443676] Netfilter messages via NETLINK v0.30.
[   25.544889] tegradc tegradc.0: unblank
[   25.554943] ctnetlink v0.93: registering with nfnetlink.
[   25.950483] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
[   28.988054] fuse init (API version 7.26)
[   31.860933] vdd-fan: disabling
[   31.860977] vdd-usb-vbus: disabling
[   31.861007] vdd-usb-vbus2: disabling
[   31.861104] vddio-sdmmc3-ap: disabling
[   31.862080] avdd-io-edp-1v05: disabling
[   31.862119] vdd-usb-hub-en: disabling
[   41.363516] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   41.363525] Bluetooth: BNEP socket layer initialized
[   73.065365] misc tegra_camera_ctrl: ISO BW req 1666225 > 1500000 (max) capping to max
[   73.065385] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[   73.354020] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[   78.828288] misc tegra_camera_ctrl: ISO BW req 1666225 > 1500000 (max) capping to max
[   78.828295] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[   79.120763] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1117.175857] misc tegra_camera_ctrl: ISO BW req 1666225 > 1500000 (max) capping to max
[ 1117.175864] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1117.467858] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1122.873501] misc tegra_camera_ctrl: ISO BW req 1666225 > 1500000 (max) capping to max
[ 1122.873508] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1123.165574] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1632.216487] misc tegra_camera_ctrl: ISO BW req 1666225 > 1500000 (max) capping to max
[ 1632.216493] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
[ 1632.508450] misc tegra_camera_ctrl: tegra_camera_update_isobw: Warning, Requested ISO BW 1500000 has been capped to VI's max BW 1500000
  1. Troubleshooting attempts you’ve made?
    I’ve disconnected and reconnected all the hardware, reflashed the operating system, reinstalled drivers as recommended on the wiki, tried different RTSP clients, changed the resolution, added/removed the (memory:NVMM) option, changed framerates, moved the inputs around. I’ve built four different versions of the gst-rtsp-server library, all the the same result.

Here’s my pipeline and the result:

nano@nano:~/rtsp-servers/gst-rtsp-server/examples$ ./test-launch  "nvarguscamerasrc sensor-id=0 num-buffers=300 ! video/xraw(memory:NVMM),width=640,height=480,format=NV12,framerate=(fraction)24/1 ! omxh264enc ! rtph264pay name=pay0 pt=96"
stream ready at rtsp://127.0.0.1:8554/test
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4056 x 3040 FR = 10.000000 fps Duration = 100000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1520 FR = 40.000000 fps Duration = 25000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1080 FR = 50.000000 fps Duration = 20000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 2 
   Output Stream W = 2028 H = 1080 
   seconds to Run    = 0 
   Frame Rate = 50.000000 
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4056 x 3040 FR = 10.000000 fps Duration = 100000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1520 FR = 40.000000 fps Duration = 25000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1080 FR = 50.000000 fps Duration = 20000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 2 
   Output Stream W = 2028 H = 1080 
   seconds to Run    = 0 
   Frame Rate = 50.000000 
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4056 x 3040 FR = 10.000000 fps Duration = 100000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1520 FR = 40.000000 fps Duration = 25000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 2028 x 1080 FR = 50.000000 fps Duration = 20000000 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 2 
   Output Stream W = 2028 H = 1080 
   seconds to Run    = 0 
   Frame Rate = 50.000000 
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
  1. What help do you need?
    Anything that might help me figure out why this stream won’t work or additional troubleshooting tips would be appreciated.