Multi-Camera (ZED X and ZED X ONE) Streaming doesn't work

My setup consists of a single ZED X and 2 ZED X Ones in a stereo pair.

I have calibrated my ZED X Ones and placed the conf file in the right location.
I understand that we can use ZED_Media_Server to create a virtual stereo camera pair and save the config and use the --cli flag to launch the stereo pair from cli but I have never gotten that to work without launching the gui, starting streaming daemon, and then closing gui.

wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZED-X][Warning] Failed to connect to zed_x_daemon.
[ZXCamera] Camera  307478115  opened at resolution  1920  x  1080  and fps  60
[ZXCamera] Camera  307111264  opened at resolution  1920  x  1080  and fps  60
[Streaming] Use Transport layer mode : 2
[Streaming] Use SHM-Boost IPC backend
Streaming Error 3
(Argus) Error FileOperationFailed: Failed socket read: Connection reset by peer (in src/rpc/socket/common/SocketUtils.cpp, function readSocket(), line 79)
(Argus) Error InvalidState: Argus client is exiting with 2 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
WARNING Argus: 8 client objects still exist during shutdown:
        281473584975936 (0x32d28b50)
        281473586264848 (0x32d2a170)
        281473586265288 (0x32d2d748)
        281473599337872 (0x32d2b640)
        281473607324640 (0x32d4d8b0)
        281473607474048 (0x32d4d5a0)
        281473607476560 (0x32d4e5a0)
        281473607485096 (0x32d4f218)
wautodrive@ubuntu:~$ ZED_Media_Server --clear-memory
[ZEDMediaServer] Version  0.1.8
** Clear memory handler **
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZED-X][Warning] Failed to connect to zed_x_daemon.
[ZXCamera] Camera  307478115  opened at resolution  1920  x  1080  and fps  60
[ZXCamera] Camera  307111264  opened at resolution  1920  x  1080  and fps  60
[Streaming] Use Transport layer mode : 2
[Streaming] Use SHM-Boost IPC backend
Streaming Error 3
(Argus) Error FileOperationFailed: Failed socket read: Connection reset by peer (in src/rpc/socket/common/SocketUtils.cpp, function readSocket(), line 79)
(Argus) Error InvalidState: Argus client is exiting with 2 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 366)
WARNING Argus: 8 client objects still exist during shutdown:
        281473580974880 (0x14e83b50)
        281473584653104 (0x14e85170)
        281473586264424 (0x14e88748)
        281473595449536 (0x14ea95a0)
        281473596690464 (0x14e86640)
        281473609644768 (0x14ea85a0)
        281473609647352 (0x14eaa218)
        281473620087552 (0x14ea88b0)
wautodrive@ubuntu:~$ ps -aux | grep ZED
wautodr+   48745 24.2  0.7 33637420 222804 pts/3 Tl   13:39   1:39 ./ZED_Streaming_Sender
root       53958 61.4  0.7 3083584 232876 ?      Ssl  13:45   0:47 /usr/local/zed/tools/ZED_Media_Server --cli
root       54190  0.0  0.0 218532 13296 ?        Ssl  13:45   0:00 /usr/sbin/ZEDX_Daemon
wautodr+   54783  0.0  0.0   8620  2052 pts/4    S+   13:46   0:00 grep --color=auto ZED
wautodrive@ubuntu:~$ sudo kill -9 53958
wautodrive@ubuntu:~$ sudo kill -9 48745
wautodrive@ubuntu:~$ ps -aux | grep ZED
root       54190  0.0  0.0 218532 13296 ?        Ssl  13:45   0:00 /usr/sbin/ZEDX_Daemon
root       54878  104  0.7 3137692 238720 ?      Ssl  13:49   0:12 /usr/local/zed/tools/ZED_Media_Server --cli
wautodr+   55089  0.0  0.0   8620  2048 pts/4    S+   13:49   0:00 grep --color=auto ZED
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ ZED_Media_Server --clear-memory
[ZEDMediaServer] Version  0.1.8
** Clear memory handler **
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ sudo ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ sudo ZED_Media_Server --clear-memory
[ZEDMediaServer] Version  0.1.8
** Clear memory handler **
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ ZED_Media_Server --cli
[ZEDMediaServer] Version  0.1.8
** CLI version **
[ZXCamera] Setup State error :  6
wautodrive@ubuntu:~$ ps -aux | grep ZED
root       54190  0.0  0.0 218532 13408 ?        Ssl  13:45   0:00 /usr/sbin/ZEDX_Daemon
root       54878  175  1.0 3290892 324448 ?      Ssl  13:49   6:44 /usr/local/zed/tools/ZED_Media_Server --cli
wautodr+   56617  0.0  0.0   8620  2052 pts/4    S+   13:52   0:00 grep --color=auto ZED
wautodrive@ubuntu:~$ 

Note: --clear memory doesn’t delete /dev/shm/sl_local_* files, I have to delete them manually and can only use the GUI to launch the X ONE as a Stereo Pair. I also cannot use kill -9 to kill the ZED_Media_Server --cli process, only restarting helps.

Coming to the ZED X, I can stream using the camera streaming script in samples as shown below without any issues:

But as soon as I try to use the ZED_Media_Server it messes up my ZED_X stream while it itself gives me a seg fault.

I’m sure that One ZED X and 2 ZED X ONEs is a supported configuration on Quad Capture Card connected to an AGX Orin and hence cannot understand the issue.

Ideally, I’d like to have access to a sample or API that can help me create a single streaming script (essentially to modify the sample script available for ZED X) to create a virtual X ONE pair too and stream that along with ZED X. I’d be happy with using ZED_Media_Server -- cli too if we can get that to work.

@Myzhar do you have any insight into this issue?

Hi @auc7us
why are you using the cli option with ZED_Media_Server?
Are you working in headless mode?

Yeah, I plan on using the cameras as part of an autonomous perception stack.

Can you try to use a dummy plug as described here?

1 Like

Thanks. I do have a monitor connected(and powered on) to the Jetson for now as I use it for debugging sometimes. Doesn’t that mean the ssh session and ZED SDK / Argus API should not fail? Do you it’s still worth trying the dummy plug?

If the monitor is connected and turned on, it should work.
Can you please try with a remote desktop tool like NoMachine or RustDesk?
We use them every day for remote Jetson control.

1 Like

I can try that. Does it mean that if I use --cli directly on Jetson, it should work? I remember trying that a couple of days ago, with gui, and running into the same issue. For the final deployment I’d prefer to have a script on Jetson that starts the stream. Depending on the issues we encounter that would make it easier for me to restart the stream if possible. Can you point me to an example maybe, that helps me set up simultaneous streaming for my setup?

@auc7us
can you also check that there are no running ZED Media Server instances when you call the command ZED_Media_Server --cli?
For example, you must stop eventual ZED Media Server services with
sudo service zed_media_server_cli stop

1 Like

This worked. I was not able to kill the ZED_Media_Server instances using kill -9 as shown in the logs shared above. Thanks for the help.

1 Like