RTSP-Server: Can't get multiple streams per URI to work

Martin Scheffler martinscheffler at gmail.com
Mon Jun 8 04:15:05 PDT 2015


Hi all,
I am trying to get multiple streams in a single RTSP session to work.

I think I have the server side correct:

--------------------------------8<-------------------------------
#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>
int main(int argc, char* argv[])
{
    gst_init (&argc, &argv);
    GMainLoop* loop = g_main_loop_new(NULL, FALSE);
    GstRTSPServer* server = gst_rtsp_server_new ();

    GstRTSPMountPoints* mounts = gst_rtsp_server_get_mount_points (server);
    GstRTSPMediaFactory* factory = gst_rtsp_media_factory_new();
    gst_rtsp_media_factory_set_launch (factory, "( audiotestsrc freq=1000
is-live=true !  audioconvert ! rtpL16pay name=pay0  audiotestsrc freq=5000
!  audioconvert ! rtpL16pay name=pay1 )");
    gst_rtsp_media_factory_set_shared (factory, TRUE);
    gst_rtsp_mount_points_add_factory (mounts, "/test", factory);
    g_object_unref (mounts);
    gst_rtsp_server_attach (server, NULL);
    g_main_loop_run (loop);
 return 0;
}
--------------------------------8<-------------------------------
I can listen to the first stream with this command line:
gst-launch-1.0.exe rtspsrc location=rtsp://localhost:8554/test !
rtpL16depay ! queue ! audioconvert ! autoaudiosink
But how can I listen to the second one (pay1)?
I tried this GStreamer command line:
gst-launch-1.0.exe rtspsrc location=rtsp://localhost:8554/test name=src
src.stream_1 ! rtpL16depay ! queue ! audioconvert ! autoaudiosink
but that does not work. The server gives out a warning "media 05bxxx was
not prepared" and the client shows a datastream error.
I can connect to the server with VLC (although an ancient version, maybe it
is too old)?
VLC shows the two audio channels and plays the second one. The server
prints:
--------------------------------8<-------------------------------
0:02:32.239700172  3376   00547960 ERROR             rtspclient
rtsp-client.c:1279:handle_play_request: client 00545D58:
 no aggregate path /test/stream=1
0:02:32.241088051  3376   00547960 ERROR             rtspclient
rtsp-client.c:947:handle_teardown_request: client 00545D
58: no aggregate path /test/stream=1
0:02:32.281316632  3376   05BC7768 WARN                  udpsrc
gstudpsrc.c:552:gst_udpsrc_create:<udpsrc8> error: get a
vailable bytes failed
0:02:32.282693343  3376   05BC7768 WARN                 basesrc
gstbasesrc.c:2933:gst_base_src_loop:<udpsrc8> error: Int
ernal data flow error.
0:02:32.284821948  3376   05BC7768 WARN                 basesrc
gstbasesrc.c:2933:gst_base_src_loop:<udpsrc8> error: str
eaming task paused, reason error (-5)
0:02:32.291064085  3376   00547960 WARN               rtspmedia
rtsp-media.c:3068:gst_rtsp_media_set_state: media 05BE21
18 was not prepared
--------------------------------8<-------------------------------
So any chance of getting this to work?
Thanks for your help!
Cheers,
Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150608/cc261c93/attachment-0001.html>


More information about the gstreamer-devel mailing list