Замена пикселей и сохранение RTSP-потоков в виде файлов без транскодирования

По сути, проблема в следующем; У меня есть 8 камер видеонаблюдения, все они транслируются через RTSP с очень высоким неизменяемым разрешением (в частности, 2560x1440). Я хочу разместить небольшой тег в углу каждого видеопотока, чтобы отобразить строку символов на белом фоне, а затем сохранить файл локально.

В настоящее время я использую Python и OpenCV для обработки фрейма, получения строки для применения, изменения фрейма, а затем сохранения его в файл. Дело в том, что файл уже закодирован в H264, и мне нужно перекодировать его в H264, а затем сохранить как файл. На дуэльном ядре современного Intel i5 (к сожалению, изменить это нельзя), транскодируя восемь видео 2560x1440 со скоростью 15 FPS одновременно, вы можете видеть, как это разваливается. Я пытаюсь оптимизировать этот процесс любыми средствами. Я также понимаю, что это очень, очень высокий заказ. Однако это не мое решение.

Я создал рисунок, чтобы показать, чего я пытаюсь достичь.

Я был бы готов попробовать что-то с C++, однако я совсем не разбираюсь в этом и не могу найти такие библиотеки для получения потоков RTSP и изменения из них кадров.

Любая помощь или ресурсы приветствуются.


person Julian Nicolai    schedule 06.08.2020    source источник


Ответы (1)


  1. Вы можете сохранить свою строку в виде растрового изображения в отдельном потоке с правильной информацией о времени и выполнить композицию во время воспроизведения.
  2. Вы можете сделать строку подзаголовком. MP4 и H.264 поддерживают различные форматы. Тогда вашему плееру просто необходимо поддерживать стандартные субтитры.
person Markus Schumann    schedule 07.08.2020