Невозможно открыть конвейер gstreamer с помощью opencv VideoCapture на Jetson TK1

Я написал программу, которая читает кадры из конвейера 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

Программа прекрасно работает на моей 64-битной виртуальной машине Ubuntu 14.04. Когда я пытался запустить его на Jetson TK1, однако, VideoCapture а также VideoWriter всегда возвращайся false на isOpened(),

Я использовал Opencv4Tegra, затем я собрал opencv из исходного кода и установил его. У обоих были одинаковые проблемы. Кто-нибудь знает, почему VideoCapture не может открыть конвейер gstreamer на Jetson TK1? Это потому, что он не работает на 32-битных машинах?

Обратите внимание, что я использую Opencv 2.4.13 и Gstreamer 1.2 и камеру Logitech C310.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]