【发布时间】:2022-01-12 02:17:00
【问题描述】:
当我使用 GStreamer 打开相机时遇到问题,但相机未连接,我没有从 OpenCV 收到错误代码。 GStreamer 在控制台中返回错误。当我检查相机是否以.isOpend() 打开时,返回值为true。连接相机后,它可以正常工作。
std::string pipeline = "nvarguscamerasrc sensor_id=0 ! video/x-raw(memory:NVMM), width=(int)3264, height=(int)2464, format=(string)NV12, framerate=(fraction)21/1 ! nvvidconv flip-method=2 ! video/x-raw, width=(int)3264, height=(int)2464, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink"
cap_device_.open(pipeline, cv::CAP_GSTREAMER);
bool err = cap_device_.isOpened();
if (!err) {
printf("Not possible to open camera");
return EXIT_FAILURE;
}
控制台中的GStreamer错误代码为:
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 219)
(Argus) Error Timeout: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:720 Failed to create CameraProvider
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (933) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
如果我理解一切正确,.isOpend() 应该返回 false。如果没有,如何检查管道是否初始化正确?
我的系统在带有 MIPI-CSI 摄像头的 Nvidia Jetson Nano 上运行 Ubuntu 18.04。 GStreamer 1.14.5 版,OpenCV 4.1.1 版
【问题讨论】:
-
AFAIK 最简单的方法是尝试捕获图像
标签: c++ opencv gstreamer nvidia-jetson-nano