The code from your above link mainly uses ffmpeg for reading IP camera streaming MPEG TS. The code may help to find the IP camera and configure/check. Maybe gstreamer on Jetson would leverage more HW accelerated processing. There is also a NVIDIA release of ffmpeg that would leverage HW decoding.
However, this may not add any improvement to your current process. If you want to capture from these GoPro 10 through USB link, you may try the following and tell where it fails: I’m using a USB ZED camera as example.
First disconnect any camera from USB.
Also assuming that no other camera is connected, so:
should report no node.
Then launch in a terminal:
sudo dmesg --follow
You don’t need to look at all kernel messages, just look at what happens when you plug the GoPro in. In my case:
[ 7180.529988] usb 2-3.4.1: new SuperSpeed Gen 1 USB device number 7 using tegra-xusb
[ 7180.559975] usb 2-3.4.1: New USB device found, idVendor=2b03, idProduct=f582, bcdDevice= 1.00
[ 7180.559984] usb 2-3.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7180.559989] usb 2-3.4.1: Product: ZED
[ 7180.559992] usb 2-3.4.1: Manufacturer: Technologies, Inc.
[ 7180.563216] uvcvideo: Found UVC 1.10 device ZED (2b03:f582)
[ 7180.576116] input: ZED: ZED as /devices/platform/3610000.xhci/usb2/2-3/2-3.4/2-3.4.1/2-3.4.1:1.0/input/input13
The main points to look at are if it is recognized, at what address, what is the device USB ID (in this case 2b03:f582), and what class (involving which driver) it is recognized as.
You may also get some info with lsusb;
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
ID 1d6b:0003 Linux Foundation 3.0 root hub
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
ID 0bda:0420 Realtek Semiconductor Corp.
|__ Port 4: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
ID 05e3:0612 Genesys Logic, Inc. Hub
|__ Port 1: Dev 7, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 7, If 1, Class=Video, Driver=uvcvideo, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
# Get more details for your device ID
lsusb -d 2b03:f582 -v
If it shows UVC driver for your device, and if you have a node appearing such as /dev/video0, it would be easy using V4L and gstreamer.
If not, it may not be easy.
There may be different modes to be tried from camera or Mac/Windows/Android application, but I have no experience with this camera.
Let us know what gives the suggested scheme.