Visionworks: camera access

Hi guys,

I’m trying to use Visionworks library since the samples and demos are really interesting.

I would like to use camera streaming as source for samples and demos to verify if it works correctly with my hardware, but I cannot figurate how to pass streaming as source.

For example, according to “nvx_sample_player” with “-s” option I can pass a device as input stream.

I tried many ways, but cannot open cameras, neither a simple USB webcam.

Using VLC I found that the path of the streaming is “v4l2:///dev/video0” so I tried “-s v4l2:///dev/video0” without success.

Any ideas?

Thank you

PS using OpenCV I can open the streaming without any issue

Hi Myzhar,

Could you use the command to see if it can work on your case:

Xxx/xxx/nvx_sample_player –s device://camera0


Hi kayccc,

I tried with “-s device://camera0” and I get the error:
“Can’t open source URI device://camera0”
even if I run the command as “sudo”.

The same happens starting from camera0 to camera7 that are the devices related to “Sensoray 1082 frame grabber”.
Instead the player with “camera8” (webcam connected to USB2) works.

The strange fact is that using OpenCV cv::VideoCapture I can get the streaming from camera0 to camera7… but not from camera8… the exact dual!

Hi Myzhar,

According to “The strange fact is that using OpenCV cv::VideoCapture I can get the streaming from camera0 to camera7…”, would you please confirm that your device is TK1 or TX1?
Supposed only one USB camera connected on your device, right? How to trigger to use other camera devices than camera0?

And please also confirm it’s dev/video0 after plugin the USB camera on your device.


Hi Kayccc,
I confirm that I’m using Jetson TK1.

On dev/video0 I have the first camera acquired by Sensoray framegrabber.

The USB camera is always on device “/dev/video8”. I can confirm this by opening the using VLC.

Using VLC I can open all the devices and it reports the following URI:
where X is the index of the camera in the range 0-8. 0-7 indices map camera from Sensoray framegrabber, index 8 is assigned to USB camera on USB2 port.

With OpenCV I opened tha video streams using the “simple” command “cv::VideoCapture cap(idx)” with “idx” in the range 0-8.


PS sorry for the late, but last week I was at GTC in San Jose and could not reply ;-)

Hello, Myzhar:
I’m not sure why your usb camera device node points to /dev/video8.

In my platform, it’s /dev/video0, and the following command line can work well:
Xxx/xxx/nvx_sample_player –s device://camera0

Can you try the following and see whether it can work.
sudo mv /dev/video0 /dev/video0_bak
sudo ln -s /dev/video8 /dev/video0
Xxx/xxx/nvx_sample_player –s device://camera0

If it still does not work, please paste your full log here.


My camera is in /dev/video0
I am using
nvxio::Application &app = nvxio::Application::get();
std::string videofileName = app.findSampleFilePath(“v4l2:///dev/video0”);


getting error

Error: Can’t allocate source /home/ubuntu/VisionWorkSamples/VisionWorks-1.4-Samples/bin/…/data/v4l2:///dev/video0

can somebody help me on this ?

Could you list your detail information. (TK1/TX1, JetPack version USB or CSI camera)