Thanks for the notice, I have missed that branch completly.
I got problems again with those solutions, link to github issue
but I think I almost managed to make it work on v4l2 loopback,
My camera uses h264 codecs.
My code:
import jetson.utils
import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument("output_URI", type=str, default="", nargs='?', help="URI of the output stream")
opt = parser.parse_known_args()[0]
camera = jetson.utils.gstCamera(1280,720,"/dev/video1")
image, width, height = camera.CaptureRGBA()
jetson.utils.saveImageRGBA("test.jpg", img, width, height)
using :
gst-launch-1.0 rtspsrc location=rtsp://login:password@172.16.1.3:554/Streaming/Channels/101/ latency=0 ! rtph264depay! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw,format=BGRx ! identity drop-allocation=true ! v4l2sink device=/dev/video1
css-jetson-dev@cssjetsondev-desktop:~/Documents/Bitbucket/cssai$ python3 ./samples/person-detection/testing-rtsp.py
[gstreamer] initialized gstreamer, version 1.14.5.0
[gstreamer] gstCamera -- attempting to create device v4l2:///dev/video1
[gstreamer] gstCamera -- found v4l2 device: Dummy video device (0x0000)
[gstreamer] v4l2-proplist, device.path=(string)/dev/video1, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)"v4l2\ loopback", v4l2.device.card=(string)"Dummy\ video\ device\ \(0x0000\)", v4l2.device.bus_info=(string)platform:v4l2loopback-000, v4l2.device.version=(uint)264588, v4l2.device.capabilities=(uint)2233499650, v4l2.device.device_caps=(uint)86016002;
[gstreamer] gstCamera -- found 38 caps for v4l2 device /dev/video1
[gstreamer] [0] video/x-raw, format=(string)YUY2, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [1] video/x-raw, format=(string)UYVY, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [2] video/x-raw, format=(string)Y42B, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [3] video/x-raw, format=(string)I420, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [4] video/x-raw, format=(string)YV12, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [5] video/x-raw, format=(string)Y41B, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [6] video/x-raw, format=(string)YVU9, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [7] video/x-raw, format=(string)YUV9, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [8] video/mpegts, systemstream=(boolean)true;
[gstreamer] [9] image/jpeg, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [10] image/jpeg, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [11] video/x-dv, systemstream=(boolean)true, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 };
[gstreamer] [12] video/x-raw, format=(string)xRGB, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [13] video/x-raw, format=(string)BGRx, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [14] video/x-raw, format=(string)RGB, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [15] video/x-raw, format=(string)BGR, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [16] video/x-raw, format=(string)NV12, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [17] video/x-raw, format=(string)BGR15, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [18] video/x-raw, format=(string)RGB16, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [19] video/x-raw, format=(string)RGB15, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ sRGB };
[gstreamer] [20] video/x-bayer, format=(string)bggr, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [21] video/x-bayer, format=(string)gbrg, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [22] video/x-bayer, format=(string)grbg, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [23] video/x-bayer, format=(string)rggb, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [24] video/x-raw, format=(string)GRAY8, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [25] video/x-vp9, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 };
[gstreamer] [26] video/x-vp8, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 };
[gstreamer] [27] video/x-wmv, wmvversion=(int)3, format=(string)WVC1, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [28] video/x-wmv, wmvversion=(int)3, format=(string)WVC1, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [29] video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [30] video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [31] video/mpeg, mpegversion=(int)2, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [32] video/mpeg, mpegversion=(int)2, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [33] video/x-h263, variant=(string)itu, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [34] video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [35] video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], colorimetry=(string){ 2:4:7:1 }, parsed=(boolean)true;
[gstreamer] [36] video/x-raw, format=(string)GRAY16_LE, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] [37] video/x-raw, format=(string)YVYU, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }, colorimetry=(string){ 2:4:7:1 };
[gstreamer] unrecognized codec - video/mpegts
[gstreamer] unrecognized codec - video/x-dv
[gstreamer] unrecognized codec - video/x-wmv
[gstreamer] unrecognized codec - video/x-wmv
[gstreamer] unrecognized codec - video/x-h263
[gstreamer] gstCamera -- couldn't find a compatible codec/format for v4l2 device /dev/video1
[gstreamer] gstCamera -- device discovery failed, but /dev/video1 exists
[gstreamer] support for compressed formats is disabled
[gstreamer] gstCamera pipeline string:
[gstreamer] v4l2src device=/dev/video1 ! appsink name=mysink
[gstreamer] gstCamera successfully created device v4l2:///dev/video1
[gstreamer] opening gstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING
[gstreamer] gstCamera failed to set pipeline state to PLAYING (error 0)
Traceback (most recent call last):
File "./samples/person-detection/testing-rtsp.py", line 22, in <module>
image, width, height = camera.CaptureRGBA()
Exception: jetson.utils -- gstCamera failed to CaptureRGBA()