OpenCV принимает потоковое видео HTTP с разных конечных точек - PullRequest
0 голосов
/ 22 июня 2019

Я пишу сервер, который принимает потоковое видео в режиме реального времени по HTTP и выполняет некоторые операции для разных конечных точек.

Я использую OpenCV для этого, и мой базовый код выглядит примерно так

void f1()
{
    cv::VideoCapture cap("http://localhost:8080/operation1");
    if (!cap.isOpened())
        return;

    for (;;)
    {
        cv::Mat frame;
        cap >> frame;

        // do something
    }
}

void f2()
{
    cv::VideoCapture cap("http://localhost:8080/operation2");
    if (!cap.isOpened())
        return;

    for (;;)
    {
        cv::Mat frame;
        cap >> frame;

        // do something else
    }
}

void f3() {...}

Как видите, каждая функция прослушивает разные конечные точки HTTP и выполняет разные операции. Каждая функция выполняется в отдельном потоке.

Проблема в том, что по какой-то причине OpenCV игнорирует ресурсную часть в конечной точке, т. Е. Если ip:port является правильным, он будет принимать поток независимо от того, идет он от operation1 или operation2.

В целях тестирования я использую эту команду в качестве генератора потока ffmpeg -i sample.mp4 -listen 1 -f matroska -c:v libx264 -preset fast -tune zerolatency http://localhost:8080/operation1

Как я могу настроить OpenCV, чтобы различать конечные точки HTTP? Что мне не хватает? У меня нет опыта работы с OpenCV и фото / видео.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...