How to stream a camera with sensor-id=3 via nvarguscamerasrc

Hi, I am trying to access a camera on my Jetson TX2 Module, I have 4 cameras attached, I am able to access 3 of them by using the below command:-

gst-launch-1.0 -e nvarguscamerasrc sensor-id=1 ! \
"video/x-raw(memory:NVMM),width=1280,height=720,framerate=30/1,format=NV12" ! \
nvv4l2h264enc bitrate=4000000 ! h264parse ! matroskamux ! \
tcpserversink host=192.168.1.22 port=5000

when I execute the below command with sensor-id=3, I get their error:-

ubuntu@tegra-ubuntu:~$ gst-launch-1.0 -e nvarguscamerasrc sensor-id=3 ! "video/x-raw(memory:NVMM),width=1280,height=720,framerate=30/1,format=NV12" ! nvv4l2h264enc bitrate=4000000 ! h264parse ! matroskamux ! tcpserversink host=192.168.1.22 port=5000
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:744 Invalid camera device specified 3 specified, 2 max index
New clock: GstSystemClock
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
Got EOS from element "pipeline0".
Execution ended after 0:00:00.002573199
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Also, the output of ls /dev/video* is given below:-

ubuntu@tegra-ubuntu:~$ ls /dev/video*
/dev/video0  /dev/video1  /dev/video2  /dev/video3

How do I fix it?

Hello @ankush.sheoran1110

Could you please share the camera sensor device tree for further checking?

Regards!
Eduardo Salazar
Embedded SW Engineer at RidgeRun

Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

It cold be the incorrect context in tegra-camera-platform{}

Confirm by below command.

nvargus_nvraw --lps

Thanks

Hi @EduardoSalazar96 the below is the camera sensor device tree

ubuntu@tegra-ubuntu:~$ v4l2-ctl --list-devices
vi-output, ov491 9-0024 (platform:15700000.vi:0):
        /dev/video0

vi-output, ov2735 10-003d (platform:15700000.vi:2):
        /dev/video1

vi-output, ov2735 7-003c (platform:15700000.vi:3):
        /dev/video2

vi-output, ov2735 7-003d (platform:15700000.vi:4):
        /dev/video3

NVIDIA Tegra Video Input Device (platform:tegra-vi4):
        /dev/media0

Hi, @ShaneCCC the below is the output of the command nvargus_nvraw --lps

ubuntu@tegra-ubuntu:~$ nvargus_nvraw --lps
nvargus_nvraw version 1.11.0
Number of supported sensor entries 18
Entry  Source Mode      Uniquename             Resolution   FR  BitDepth  Mode
Index  Index  Index                                             CSI Dyn   Type
  0      0      0         e33_centerleft       1920x1080   29  10  10    Bayer
  1      0      1         e33_centerleft       1600x 900   29  10  10    Bayer
  2      0      2         e33_centerleft       1280x 720   29  10  10    Bayer
  3      0      3         e33_centerleft       1920x1080   29  10  10    Bayer
  4      0      4         e33_centerleft       1600x 900   29  10  10    Bayer
  5      0      5         e33_centerleft       1280x 720   29  10  10    Bayer
  6      1      0         e33_centerleft       1920x1080   29  10  10    Bayer
  7      1      1         e33_centerleft       1600x 900   29  10  10    Bayer
  8      1      2         e33_centerleft       1280x 720   29  10  10    Bayer
  9      1      3         e33_centerleft       1920x1080   29  10  10    Bayer
 10      1      4         e33_centerleft       1600x 900   29  10  10    Bayer
 11      1      5         e33_centerleft       1280x 720   29  10  10    Bayer
 12      2      0         e33_centerleft       1920x1080   29  10  10    Bayer
 13      2      1         e33_centerleft       1600x 900   29  10  10    Bayer
 14      2      2         e33_centerleft       1280x 720   29  10  10    Bayer
 15      2      3         e33_centerleft       1920x1080   29  10  10    Bayer
 16      2      4         e33_centerleft       1600x 900   29  10  10    Bayer
 17      2      5         e33_centerleft       1280x 720   29  10  10    Bayer

Hello @ankush.sheoran1110

Thank you for the information provided. However, that is not the device tree file. The device tree is a file where you describe your hardware structure and data, in the NVIDIA sources have a dtsi extension. Could you please share that file with us? As @ShaneCCC that could be an issue with the tegra-camera-platform and I would like to check it.

Also, you could check information related to the tegra-camera-platform at https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3276/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.48.1.html#wwpID0E0JCB0HA

May I know which is the camera sensor that you are using?

Regards!

@EduardoSalazar96 I am using
1x OV491 and 3x OV2735 Camera Sensors and Sorry but I cannot provide you the camera device tree files as they are confidential to me.

You can dump the device tree by below command to verify the context of tegra-camera-platform{}

sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree

Hi @ShaneCCC, do I need to provide you that file? Its Confidential, the BSP is confidential.

Hello @ankush.sheoran1110

Sorry for the late response.

Ok, since that the dtsi file could not be shared, here is a module3subnode example for a third camera sensors config:

                        module3 {
                                badge = "<sensor_name>_3_<sensor_name>";
                                position = "3";
                                orientation = "3";
                                drivernode0 {
                                        pcl_id = "v4l2_sensor";
                                        devname = "<sensor_name> <i2c_bus>-00<sensor_address>";
                                        proc-device-tree = "/proc/device-tree/i2c@31e0000/tca9544@72/i2c@2/<sensor_name>@<sensor_address>";
                                };
                        };

the above module3 is not for a TX2 board, but it could work for you as a reference.

Regards!

Hi @EduardoSalazar96 Thanks for the reply! But as I’m new to this, can you tell me what is this module 3 and how to apply it?

You need to check the device tree by yourself if your they are confidential.

Thanks