我正在try 捕获来自RTSP摄像头的视频流,并将其写入文件.将Jetson Xavier AGX与Jetpack 4.5配合使用[L4T 32.5.0]
我正在使用下面的python应用程序来执行任务:
cap = cv2.VideoCapture("rtspsrc location=rtsp://10.34.134.1/Streaming/channels/1/ user-id=myuser user-pw=mypass ! rtph264depay ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink")
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
fps = cap.get(cv2.CAP_PROP_FPS)
print('Src opened, %dx%d @ %d fps' % (w, h, fps))
gst_out = "appsrc ! video/x-raw, format=BGR ! queue ! videoconvert ! video/x-raw,format=BGRx ! nvvidconv ! nvv4l2h264enc ! h264parse ! matroskamux ! filesink location=test.mkv "
out = cv2.VideoWriter(gst_out, cv2.CAP_GSTREAMER, 0, float(fps), (int(w), int(h)))
if not out.isOpened():
print("Failed to open output")
exit()
if cap.isOpened():
while True:
ret_val, img = cap.read()
if not ret_val:
break;
out.write(img);
cv2.waitKey(1)
else:
print ("pipeline open failed")
cap.release()
out.release()
打开溪流不起作用.我得到以下错误:
[ERROR:0@0.041]GLOBAL/io/Opencv/MODULES/VIDEOIO/src/cap.cpp(164) Open VIDEOIO(CV_IMAGE):引发OpenCV异常:
OpenCV(4.6.0)/io/opencv/modules/videoio/src/cap_images.cpp:253: 错误:(-5:错误参数)CAP_IMAGE:找不到起始编号(在 文件名):rtspsrc Location=rtsp://10.34.134.1/Streaming/channels/1/用户id=我的用户 用户密码=mypass!Rtph264描述!H264parse!Nvv4l2解码器!Nvvidconv 好了!视频/x-RAW,格式=BGRx!视频转换!视频/x-RAW,格式=bgr! 函数‘icvExtractPattern’中的AppSink
我能以某种方式修改提供给cv2.VideoCapture的字符串以正确读取RTSP流吗?