无法在Jetson TK1上使用opencv VideoCapture打开gstreamer管道

时间:2016-06-19 07:02:30

标签: c++ opencv gstreamer tegra

我写了一个程序,它从gstreamer管道中读取帧,用opencv库处理它们,然后写回gstreamer管道。

代码段:

cv::VideoCapture cap("v4l2src ! video/x-raw, framerate=30/1, width=640, height=480, format=RGB ! videoconvert ! appsink");
if (!cap.isOpened()) {
    printf("=ERR= can't create video capture\n");
    return -1;
}

cv::VideoWriter writer;
writer.open("appsrc ! videoconvert ! x264enc noise-reduction=10000 tune=zerolatency byte-stream=true threads=4 key-int-max=15 ! mpegtsmux ! udpsink host=localhost port=9999"
            , 0, (double)15, cv::Size(640, 480), true);
if (!writer.isOpened()) {
    printf("=ERR= can't create video writer\n");
    return -1;
}

/* Read/write frames as usual */
// Mat frame
// while true
//     cap >> frame
//     process the frame
//     writer << frame

该程序在我的ubuntu 14.04 64位VM上运行良好。但是,当我尝试在Jetson TK1上运行时,VideoCaptureVideoWriter始终会在false上返回isOpened()

我使用的是Opencv4Tegra,然后我从源代码构建了opencv并安装了它。两者都有同样的问题。有谁知道为什么VideoCapture无法在Jetson TK1上打开gstreamer管道?是因为它不能在32位机器上工作吗?

请注意,我使用的是Opencv 2.4.13和Gstreamer 1.2以及相机Logitech C310。

0 个答案:

没有答案