I have a camera, that by default is linked to a client that must be connected to it. I would like to add a second client. The problem is that when I try to connect, I get that message : “controller privilege required for streaming control”. However on Wireshark, I can see the packets of that camera I am interested in going, and I can read them. If I can read them, I should be able to parse and display it. However aravis metadata does not display that camera with the right IP etc.
This is not possible by design of the protocol (as far as I know, at least). The camera opens the stream to a single server only.
Wireshark can intercept the stream as it puts the network interface into promiscuous mode (the NIC receives all packets on the cable, not just the ones which are desined for it), which is something you need to be admin (root) to do.
It might be possible (and it seems to be possible by looking for GigEVision multicast) to have the camera stream to a multicast address, but Aravis would need to be modified for that to set multicast address as receiver instead of just its own as it does now.
Else would it be possible to sniff the packets like WireShark does and read them that way ? Or there would be problems of latency etc ?
You would be bypassing Aravis, so packet reception (assemble from datagrams) would have to be replicated, perhaps the parsing as well.
There is no extra latency for promiscuous mode, just that your machine (=kernel) has to deal with more incoming traffic (which would be mostly discarded); normally packet not for you would be discarded by the NIC hw (AFAIK), before ever reaching the OS.