Не удается подключить Kurento KMS к многоадресному URI RTSP - PullRequest
0 голосов
/ 18 февраля 2019

Использование Kurento Media Server (KMS) в версии 6.6.0 , развернутой с помощью Docker с использованием следующего образа из Docker Hub: kurento / kurento-media-server: 6.6.0

Руководство следует : Документы »Руководства по Kurento» Java - Player

Версия KMS : 6.6.0

Version: 6.6.0
Found modules:
        Module: 'core' version '6.6.0'
        Module: 'elements' version '6.6.0'
        Module: 'filters' version '6.6.0'

Другие версии библиотек :

ii  gstreamer1.5-libav:amd64             1.8.2.1~20160909143244.96.g493eee4.trusty  amd64        libav plugin for GStreamer
ii  gstreamer1.5-nice:amd64              0.1.13.1~20160909144510.80.gd9ef50e.trusty amd64        ICE library (GStreamer plugin)
ii  gstreamer1.5-plugins-bad:amd64       1.8.1.1~20160909144557.99.gf836e53.trusty  amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.5-plugins-base:amd64      1.8.1.1~20160909142623.55.g7b19cfd.trusty  amd64        GStreamer plugins from the "base" set
ii  gstreamer1.5-plugins-good:amd64      1.8.1.1~20160909143047.112.g9ee4248.trusty amd64        GStreamer plugins from the "good" set
ii  gstreamer1.5-plugins-ugly:amd64      1.8.1.1~20160909192513.89.g2685b0f.trusty  amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.5-pulseaudio:amd64        1.8.1.1~20160909143047.112.g9ee4248.trusty amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.5-x:amd64                 1.8.1.1~20160909142623.55.g7b19cfd.trusty  amd64        GStreamer plugins for X11 and Pango
ii  kms-core-6.0                         6.6.0.20160909201132.trusty                amd64        Kurento core module
ii  kms-elements-6.0                     6.6.0.20160912112100.trusty                amd64        Kurento elements module
ii  kms-filters-6.0                      6.6.0.20160912114031.trusty                amd64        Kurento filters module
ii  kms-jsonrpc-1.0                      1.1.1.trusty                               amd64        Kurento jsonrpc library
ii  kmsjsoncpp                           1.6.3~20160909143252.40.gd78deb7.trusty    amd64        Kurento jsoncpp library
ii  kurento-media-server-6.0             6.6.0.20160912115811.trusty                amd64        Kurento Media Server
ii  libgstreamer-plugins-bad1.5-0:amd64  1.8.1.1~20160909144557.99.gf836e53.trusty  amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base1.5-0:amd64 1.8.1.1~20160909142623.55.g7b19cfd.trusty  amd64        GStreamer libraries from the "base" set
ii  libgstreamer1.5-0:amd64              1.8.1.1~20160909144007.170.g0d6031b.trusty amd64        Core GStreamer libraries and elements
ii  libnice10:amd64                      0.1.13.1~20160909144510.80.gd9ef50e.trusty amd64        ICE library (shared library)

Клиентские библиотеки

  1. Сервер приложений (Back-end)

    • Язык: Java
    • Версия: 6.9.0
<dependency>
    <groupId>org.kurento</groupId>
    <artifactId>kurento-client</artifactId>
    <version>6.9.0</version>
</dependency>
  1. Kurento-utils (Front-end)

    • Язык: JavaScript (Front-end)
    • Версия: 6.9.0 "kurento-utils": "^6.9.0"

Когда я пытаюсь подключить " PlayerEndpoint " к IP-камере по RTSP MULTICAST , например: rtsp: //xxxxx:xxxxx@xxx.xxx.xxx.xxx?multicast=1

KMS возвращает следующую ошибку:

ЖурналKMS v6.6.0 Подключение Kurento IP-камера Multicast

Обратите особое внимание на строку:

kms2       | 0:04:34.165887894     1 0x7fe214002230 DEBUG                rtspsrc gstrtspsrc.c:7553:gst_rtspsrc_handle_message:<source> timeout on UDP port

Я могу играть RTSP UNICAST потоков, но не MULTICAST

Также я следую этим шагам, чтобы проверить, не является ли это проблемой с сетью.

  • Попробуйте сыграть MULTICAST Поток на GStreamer с помощью следующей команды работает нормально:

gst-launch-1.0 rtspsrc location = "rtsp: // xxxxx: xxxxx@xxx.xxx.xxx.xxx? multicast = 1 "!расшифровка!autovideosink

  • Сравните кадры Wireshark, используя GStreamer и Kurento.С GStreamer проблем не возникает, но при использовании Kurento кажется, что камера начинает отправлять данные на адрес MULTICAST, но Kurento не визуализирует поток, выдает ошибку « invalid uri » и выполняет команду TEARDOWN.

Вот результат пакетов Wireshark:

Обратите внимание на трассировку Wireshark с протоколом IGMPv2, я заметил, что Куренто не использует этот протокол.

1 Ответ

0 голосов
/ 21 февраля 2019

Следуя этой документации:

https://doc -kurento.readthedocs.io / en / 6.9.0 / dev / dev_guide.html # add-kurento-repository

Мне удалось выполнить команду gst-launch-1.5 следующим образом:

gst-launch-1.5 rtspsrc location =" rtsp://xxxxx:xxxxx@xxx.xxx.xxx.xxx/?multicast=1"! Decodebin! autovideosink

Тогда результат был ожидаемым, видео можно было без проблем воспроизводить в MULTICAST.

После этого я нашел следующий пост:

Как поддерживать многоадресную сеть в Docker

Тогда я смог убедиться, что ошибка пришла из Docker.в частности, конфигурацию его сети.

Решение этой проблемы состоит в том, чтобы предоставить сервис KMS следующим образом в Docker Compose с:

network_mode: host

version: "3.7"
services:
  kms:
    image: kurento/kurento-media-server:6.9.0
    container_name: kms
    restart: always
    network_mode: host
    environment:
      - GST_DEBUG=2,Kurento*:5
...