Проблема заключалась в том, что моя версия openCV не поддерживала VideoWriter от gstreamer. Я изменяю это на 3.3.0, и это работает.

аюсь написать простое приложение для потоковой передачи видео, которое выполняет следующие задачи:

Получить кадр с камеры, эта часть работает);Изменить кадр;Отправить наgstreamer трубопровод.

Код:

VideoWriter writer;
writer.open("appsrc ! rtpvrawpay !  host =localhost port=5000" , 0, 30, cv::Size(IMAGE_WIDTH, IMAGE_HEIGHT), true);
while(true){

    //get frame etc.
    writer.write(frame);
}

VLC player не видит ничего с помощью команды:

vlc -vvv rtp://@localhost:5000

Я пытался:

cv::VideoCapture cap("udpsrc port=5000 ! tsparse ! videoconvert ! appsink");

Но он не запустился (без журнала ошибок, просто не получил ни одного кадра). Я использую OpenCV 3.1, и я прочитал документацию поддержки дляGStreamer, Что может быть не так?

Ответы на вопрос(2)

Ваш ответ на вопрос