【问题标题】:Cannot connect Kurento KMS to a RTSP Multicast URI无法将 Kurento KMS 连接到 RTSP 多播 URI
【发布时间】:2019-02-18 16:24:04
【问题描述】:

使用版本 6.6.0 的 Kurento 媒体服务器 (KMS),使用 Docker Hub 中的以下映像通过 Docker 部署:kurento/kurento-media-server:6.6。 0

后续教程:Docs » Kurento Tutorials » 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. 应用服务器(后端)

    • 语言:Java
    • 版本:6.9.0
<dependency>
    <groupId>org.kurento</groupId>
    <artifactId>kurento-client</artifactId>
    <version>6.9.0</version>
</dependency>
  1. Kurento-utils(前端)

    • 语言:JavaScript(前端)
    • 版本:6.9.0 "kurento-utils": "^6.9.0"

当我尝试通过 RTSP MULTICAST 将“PlayerEndpoint”连接到网络摄像机时,例如:rtsp://xxxxx:xxxxx@xxx .xxx.xxx.xxx?multicast=1

KMS 返回以下错误:

Log KMS v6.6.0 Connection Kurento IP camera Multicast

特别注意行:

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

我可以播放 RTSP 单播 流,但不能播放 多播

我也按照这个步骤检查这是否不是网络问题。

  • 尝试使用以下命令在 GStreamer 上播放 MULTICAST 流可以正常工作:

gst-launch-1.0 rtspsrc location="rtsp://xxxxx:xxxxx@xxx.xxx.xxx.xxx?multicast=1" !解码器!自动视频接收器

  • 使用 GStreamer 和 Kurento 比较 Wireshark 帧。使用 GStreamer 没有问题,但使用 Kurento 似乎相机开始向 MULTICAST 地址发送数据,但 Kurento 没有可视化流程,它给出“invalid uri”错误并执行 TEARDOWN。

这是 Wireshark 包的结果:

注意使用 IGMPv2 协议的 Wireshark 跟踪,我注意到 Kurento 没有使用该协议。

【问题讨论】:

  • 请使用 'gst-launch-1.5' 以确保您使用与 KMS 相同的库。还可以使用export GST_DEBUG="${GST_DEBUG:-3},playerendpoint:5,uridecodebin:5,rtspsrc*:5"(在默认行的顶部)查看扩展日志记录。如果手动启动 KMS,或者将该行添加到 /etc/default/kurento-media-server,您可以在控制台上使用它。我认为这与groups.google.com/d/topic/kurento/uPAZJ-WYNBU/discussion 相同
  • 嗨@j1elo 感谢您的回复,我已使用您的日志记录提示编辑了问题以获取更多信息,请查看:D
  • 我也会尝试你的 gst-launch-1.5 使用响应来测试 RTSP 连接。

标签: kurento fiware-kurento


【解决方案1】:

遵循本文档:

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中毫无问题地播放。

在这之后我发现了以下帖子:

How to support multicast network in Docker

然后我可以验证错误来自 Docker,特别是它的网络配置。

解决这个问题的方法是在Docker Compose中通过如下方式暴露KMS服务:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 2019-12-14
    • 1970-01-01
    • 2021-02-28
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多