Hello,
I hope to decode jpeg from gstreamer rtsp streaming.
nvidia@nvidia-desktop:~/coding$ python3 rtsp_gst.py
Opening in BLOCKING MODE
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module udpsrc4 reported: Internal data stream error.
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ERROR:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap.cpp (116) open VIDEOIO(CV_IMAGES): raised OpenCV exception:
OpenCV(4.1.1) /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file): rtspsrc location=rtsp://root:[email protected]:554/cam0_0 ! nvv4l2decoder mjpeg=1 ! nvvidconv ! video/x-raw, format=RGBA ! videoconvert ! video/x-raw,format=BGR ! appsink in function ‘icvExtractPattern’
rtsp open failed
source code is below.
import sys
import cv2
def read_cam():
# cap = cv2.VideoCapture("rtspsrc location=rtsp://root:[email protected]:554/cam0_0 ! rtph264depay ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink ")
cap = cv2.VideoCapture("rtspsrc location=rtsp://root:[email protected]:554/cam0_2 ! nvv4l2decoder mjpeg=1 ! nvvidconv ! video/x-raw, format=RGBA ! videoconvert ! video/x-raw,format=BGR ! appsink ")
if cap.isOpened():
cv2.namedWindow(“demo”, cv2.WINDOW_AUTOSIZE)
while True:
ret_val, img = cap.read();
cv2.imshow(‘demo’,img)
cv2.waitKey(10)
else:
print(“rtsp open failed”)
cv2.destroyAllWindows()
if name == ‘main’:
read_cam()
Thank you.