Хранение потоков в кодировке RTSP - Использование OpenCV / C ++ - PullRequest
0 голосов
/ 01 августа 2020

Надеюсь, у всех все отлично.

Я пытаюсь сделать потоковое видео RTSP отображение , а также хранилище . как показано на следующем рисунке.

Схема работы Приведенный ниже конвейер Gstreamer отлично работает для следующих двух задач.

  1. Захват, декодирование и отображение.

  2. Захват и сохранение тот же поток в файл ( без какой-либо операции декодирования ).

    gst-launch-1.0 -e rtspsr c location = rtsp: // admin:888888@192.168.5.21: 5001 / udp / av0_0! rtph264depay! h264parse! имя тройника = т! очередь ! omxh264de c! видеоконвертировать! очередь ! autovideosink sync = false async = false t. ! очередь ! mp4mux! filesink location = out.mp4

Теперь, чтобы обработать фреймы, я должен выполнить аналогичную задачу выше в программировании C ++ / OpenCV,

  1. Захват RTSP-кодированный видеопоток, декодирование и процесс ит.
  2. Захват & Сохранять входящий закодированный видеопоток RTSP в файл без выполнения операции декодирования над ним с использованием программирования openCV / C ++.

The первая задача выполняется с использованием кода OpenCV, показанного ниже.

VideoCapture cap("rtspsrc location=rtsp://admin:888888@192.168.5.21:5001/udp/av0_0 ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! appsink sync=false async=false",cv::CAP_GSTREAMER);

cap.read(img);
process(img);
  • Проблема Я пробовал несколько способов выполнить вторую задачу , но я не смог это сделать.

Я пробовал следующий код, который может сохранять видеопоток в файле, но не может воспроизводить сохраненные output.mp4 файл из-за неправильных фреймов для хранения.

cv::VideoCapture cap ("-e rtspsrc location=rtsp://admin:888888@192.168.5.21:5001/udp/av0_0 ! rtph264depay ! h264parse ! tee name=t ! queue ! omxh264dec ! videoconvert ! queue ! appsink t. ! queue  ! filesink location=out.mp4");

cap.read(img);
process(img);
cv::imshow(img);

Был бы очень признателен, если бы кто-нибудь мог помочь мне сделать это ond (захват и сохранение входного закодированного потока в файл).

...