Of course:
The full pipeline I have tried to use is
rtspsrc location={} ! rtph264depay ! h264parse ! nvdec_h264 ! nvvidconv ! video/x-raw\
,format=RGBA ! videocrop top={} bottom={} left={} right={} ! videoscale ! video/x-raw,width={},heigh\
t={} ! appsink name=opencvsink
Where the {} are input parameters.
When I run it with GST_DEBUG=“*:2” I get:
nvvidconv: line=300 ---- video/x-raw, width=(int)1280, height=(int)960, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA; video/x-raw, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ], framerate=(fraction)0/1, format=(string)RGBA
0:00:00.677649686 15862 0x7f788c00e190 WARN basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<nvvidconv0> transform could not transform video/x-raw(memory:NVMM), format=(string)NV12, width=(int)1280, height=(int)960, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1 in anything we support
nvvidconv: line=300 ---- video/x-raw, width=(int)1280, height=(int)960, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA; video/x-raw, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ], interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ], framerate=(fraction)0/1, format=(string)RGBA
0:00:00.677918044 15862 0x7f788c00e190 WARN basetransform gstbasetransform.c:1414:gst_base_transform_setcaps:<nvvidconv0> transform could not transform video/x-raw(memory:NVMM), format=(string)NV12, width=(int)1280, height=(int)960, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1 in anything we support
0:00:00.677956109 15862 0x7f788c00e190 WARN GST_PADS gstpad.c:4092:gst_pad_peer_query:<nvcuvidh264dec0:src> could not send sticky events
Where the nvvidconv message repeats multiple times. I am checking to see if the pipeline reaches the playing state, but it never does.
Now I’ve run some more pipelines and it appears nvvidconv is the problem.
This pipeline:
rtspsrc location=rtsp://10.1.10.179:9000/test1.sdp ! rtph264depay ! h264parse ! nvdec_h264 ! appsink name=opencvsink
does get to the playing state and produces buffers. Our app wants BGR or RGBA images, however, and once I try
rtspsrc location=rtsp://10.1.10.179:9000/test1.sdp ! rtph264depay ! h264parse ! nvdec_h264 ! nvvidconv ! video/x-raw,format=RGBA ! appsink name=opencvsink
The output reads:
nvvidconv0: NOT SUPPROTED CONVERSION … Use videoconvert … EXITING…
When I try to use videoconvert in its place, I get:
ERROR GST_PIPELINE grammar.y:642:gst_parse_perform_link: could not link videoconvert0 to opencvsink