Настройте RTSP-сервер на основе gstreamer для потоковой передачи с живым источником на разные клиенты с разным транспортом

#camera #gstreamer #rtsp

Вопрос:

Я пытаюсь создать rtsp-сервер на основе gstreamer, который принимает входные данные из живого источника. Несколько клиентов должны иметь возможность подключиться к этому серверу и получить поток. Клиенты могут запросить поток по протоколу tcp или udp.

У меня есть плагин gstreamer для съемки входного видео с камеры (источник в реальном времени). Моя конфигурация конвейера для rtsp-сервера-mycamerasrc ! очередь ! h264 разбор ! rtph264pay имя=pay0 pt=96

Я включил общий флаг на сервере rtsp, чтобы носитель дублировался.

Все работает нормально до тех пор, пока несколько клиентов запрашивают поток через один и тот же транспорт, т. е. либо tcp, либо udp. Когда разные клиенты запрашивают поток по другому транспорту, т. Е. один клиент по tcp, а другой по udp, сервер rtsp запускает другой экземпляр плагина my camera, и производительность падает.

Как настроить сервер таким образом, чтобы он не создавал новый экземпляр для плагина камеры и продолжал использовать один и тот же носитель для всех клиентов независимо от транспорта.