适用于多个流的RTSP服务器(gstreamer)

时间:2017-04-05 13:08:11

标签: gstreamer rtsp

我尝试使用gstreamer设置RTSP服务器。我可以使用一些帮助来定义服务器。

该项目的概念是:
我们有几个相机模块(让我们说' cam0'' cam1'),每个都有一些视频通道(HD和SD)和一些音频通道(语言0和LANGUAGE1)。用户(RTSP客户端)应该能够在不同的视频和音频通道之间切换。如果用户正在使用language0观看HD流,则他不想接收其他流(减少所需的带宽)。

问题是,我应该如何实施RTSP服务器来处理这些要求?

以下哪项提案最佳?或者,如果有更好的方法,请告诉我。

  1. 每个相机模块使用一个RTSP服务器,此服务器有多个URI,例如:
    server0:rtsp:// IP:port / HD
    server0:rtsp:// IP:port / SD
    server0:rtsp:// IP:port / lang0
    server0:rtsp:// IP:port / lang1
  2. 每个摄像头模块使用多个RTSP服务器,每个服务器都有一个URI,如:
    server0:rtsp:// IP:port0 / HD
    server1:rtsp:// IP:port1 / SD
    server2:rtsp:// IP:port2 / lang0
    server3:rtsp:// IP:port3 / lang1
  3. 每个相机模块使用一个RTSP服务器,并使用一个带有多个子流的URI,例如:
    server0:rtsp:// IP:端口/流(包含子流HD,SD,lang0,lang1)
  4. 这些建议中的一个是实施RTSP服务器的正确方法吗?并且只有正在观看的流必须在网络上。

    注意:
    我使用gst-rtsp-server作为RTSP服务器 我使用rtspsrc接收流。

    更新: 我使用了案例1和3的组合。所以我有两个视频流s1和s2。对于s1,我使用案例3来拥有两个子流,hd和sd。我无法将这两个分开,因为它们来自同一个视频。因此,如果请求一个,则发送两者。

    要获得案例1,您必须使用两个媒体工厂并为它们提供不同的uri。我给了他们不同的多播地址和端口范围。

0 个答案:

没有答案