~$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
Size: Discrete 320x240
Interval: Discrete 0.005s (187.000 fps)
Interval: Discrete 0.007s (150.000 fps)
Interval: Discrete 0.007s (137.000 fps)
Interval: Discrete 0.008s (125.000 fps)
Interval: Discrete 0.010s (100.000 fps)
Interval: Discrete 0.013s (75.000 fps)
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.027s (37.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.025s (40.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.067s (15.000 fps)
I had already changed
define DEFAULT_CAMERA -1 // -1 for onboard camera, or change to index of /dev/video V4L2 camera (>=0)
to
define DEFAULT_CAMERA 0 // -1 for onboard camera, or change to index of /dev/video V4L2 camera (>=0)
before I found this post https://devtalk.nvidia.com/default/topic/1052803/jetson-nano/logitech-c170-support-imagenet-camera-failed-to-capture-frame/post/5344253/#5344253, which seems to be similar. Following that post, I edited imagenet-camera.cpp so that the line which originally read
gstCamera* camera = gstCamera::Create(DEFAULT_CAMERA);
to
gstCamera* camera = gstCamera::Create(640, 480, DEFAULT_CAMERA);
and
make
make install
Now, when I run imagenet-camera, this is what I get:
~/jetson-inference/build/aarch64/bin$ ./imagenet-camera
imagenet-camera
args (1): 0 [./imagenet-camera]
[gstreamer] initialized gstreamer, version 1.14.1.0
[gstreamer] gstCamera attempting to initialize with GST_SOURCE_NVCAMERA
[gstreamer] gstCamera pipeline string:
v4l2src device=/dev/video0 ! video/x-raw, width=(int)640, height=(int)480, format=YUY2 ! videoconvert ! video/x-raw, format=RGB ! videoconvert !appsink name=mysink
[gstreamer] gstCamera successfully initialized with GST_SOURCE_V4L2
imagenet-camera: successfully initialized video device
width: 640
height: 480
depth: 24 (bpp)
imageNet -- loading classification network model from:
-- prototxt networks/googlenet.prototxt
-- model networks/bvlc_googlenet.caffemodel
-- class_labels networks/ilsvrc12_synset_words.txt
-- input_blob 'data'
-- output_blob 'prob'
-- batch_size 2
[TRT] TensorRT version 5.0.6
[TRT] detected model format - caffe (extension '.caffemodel')
[TRT] desired precision specified for GPU: FASTEST
[TRT] requested fasted precision for device GPU without providing valid calibrator, disabling INT8
[TRT] native precisions detected for GPU: FP32, FP16
[TRT] selecting fastest native precision for GPU: FP16
[TRT] attempting to open engine cache file networks/bvlc_googlenet.caffemodel.2.1.GPU.FP16.engine
[TRT] loading network profile from engine cache... networks/bvlc_googlenet.caffemodel.2.1.GPU.FP16.engine
[TRT] device GPU, networks/bvlc_googlenet.caffemodel loaded
[TRT] device GPU, CUDA engine context initialized with 2 bindings
[TRT] binding -- index 0
-- name 'data'
-- type FP32
-- in/out INPUT
-- # dims 3
-- dim #0 3 (CHANNEL)
-- dim #1 224 (SPATIAL)
-- dim #2 224 (SPATIAL)
[TRT] binding -- index 1
-- name 'prob'
-- type FP32
-- in/out OUTPUT
-- # dims 3
-- dim #0 1000 (CHANNEL)
-- dim #1 1 (SPATIAL)
-- dim #2 1 (SPATIAL)
[TRT] binding to input 0 data binding index: 0
[TRT] binding to input 0 data dims (b=2 c=3 h=224 w=224) size=1204224
[cuda] cudaAllocMapped 1204224 bytes, CPU 0x100e30000 GPU 0x100e30000
[TRT] binding to output 0 prob binding index: 1
[TRT] binding to output 0 prob dims (b=2 c=1000 h=1 w=1) size=8000
[cuda] cudaAllocMapped 8000 bytes, CPU 0x100f60000 GPU 0x100f60000
device GPU, networks/bvlc_googlenet.caffemodel initialized.
[TRT] networks/bvlc_googlenet.caffemodel loaded
imageNet -- loaded 1000 class info entries
networks/bvlc_googlenet.caffemodel initialized.
default X screen 0: 1280 x 800
[OpenGL] glDisplay display window initialized
[OpenGL] creating 640x480 texture
loaded image fontmapA.png (256 x 512) 2097152 bytes
[cuda] cudaAllocMapped 2097152 bytes, CPU 0x101060000 GPU 0x101060000
[cuda] cudaAllocMapped 8192 bytes, CPU 0x100f62000 GPU 0x100f62000
[gstreamer] gstreamer transitioning pipeline to GST_STATE_PLAYING
[gstreamer] gstreamer changed state from NULL to READY ==> mysink
[gstreamer] gstreamer changed state from NULL to READY ==> videoconvert1
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> videoconvert0
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter0
[gstreamer] gstreamer changed state from NULL to READY ==> v4l2src0
[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0
[gstreamer] gstreamer changed state from READY to PAUSED ==> videoconvert1
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> videoconvert0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> v4l2src0
[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0
[gstreamer] gstreamer msg new-clock ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> videoconvert1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> videoconvert0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> v4l2src0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer msg stream-start ==> pipeline0
imagenet-camera: camera open for streaming
imagenet-camera: failed to capture frame
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[gstreamer] gstCamera onPreroll
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101260000 GPU 0x101260000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101360000 GPU 0x101360000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101460000 GPU 0x101460000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101560000 GPU 0x101560000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101660000 GPU 0x101660000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101760000 GPU 0x101760000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101860000 GPU 0x101860000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101960000 GPU 0x101960000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101a60000 GPU 0x101a60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101b60000 GPU 0x101b60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101c60000 GPU 0x101c60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101d60000 GPU 0x101d60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101e60000 GPU 0x101e60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x101f60000 GPU 0x101f60000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x102060000 GPU 0x102060000
[cuda] cudaAllocMapped 921600 bytes, CPU 0x102160000 GPU 0x102160000
[cuda] gstreamer camera -- allocated 16 ringbuffers, 921600 bytes each
[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink
[gstreamer] gstreamer msg async-done ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
[cuda] gstreamer camera -- allocated 16 RGBA ringbuffers
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[gstreamer] gstreamer msg qos ==> v4l2src0
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[gstreamer] gstreamer msg qos ==> v4l2src0
[gstreamer] gstreamer msg qos ==> v4l2src0
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[cuda] cudaNormalizeRGBA((float4*)imgRGBA, make_float2(0.0f, 255.0f), (float4*)imgRGBA, make_float2(0.0f, 1.0f), camera->GetWidth(), camera->GetHeight())
[cuda] invalid device pointer (error 17) (hex 0x11)
[cuda] /home/daniel/jetson-inference/imagenet-camera/imagenet-camera.cpp:193
[cuda] cudaGraphicsGLRegisterBuffer(&mInteropCUDA, mDMA, cudaGraphicsRegisterFlagsWriteDiscard)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/display/glTexture.cpp:253
[cuda] cudaGetLastError()
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/cuda/cudaRGB.cu:76
[cuda] cudaRGB8ToRGBA32((uchar3*)input, (float4*)mRGBA[mLatestRGBA], mWidth, mHeight)
[cuda] unknown error (error 30) (hex 0x1E)
[cuda] /home/daniel/jetson-inference/utils/camera/gstCamera.cpp:145
imagenet-camera: failed to convert from NV12 to RGBA
[TRT] imageNet::Classify( 0x(nil), 640, 480 ) -> invalid parameters
[gstreamer] gstreamer msg qos ==> v4l2src0
and so on.