UDP re-stream over RTSP server

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

UDP re-stream over RTSP server

Lóránt Labádi

Hello!

I would like to use this framework to re-stream an UDP stream (h264 stream from ffmpeg) without transcoding and videoscaling like a RTSP media server.

I wrote a code as for samples, but it does not work stable, sometimes it works and sometimes it doesn't while the udp source is stable and working.

What did I do wrong or is it possible operation what I want?

BR.

Labi

t_server serv;
guint id;

gst_init(NULL, NULL);

serv.loop = g_main_loop_new(NULL, FALSE);
serv.server = gst_rtsp_server_new();
serv.mounts = gst_rtsp_server_get_mount_points(serv.server);

gst_rtsp_server_set_address(serv.server, "192.168.1.132");
gst_rtsp_server_set_service(serv.server, "8001");

gchar sessionid[256];
sprintf(sessionid, "Session_%d_%d", GetTickCount(), rand());

auto &&session = gst_rtsp_session_new(sessionid);
gst_rtsp_session_prevent_expire(session);

serv.factory = gst_rtsp_media_factory_new();

gst_rtsp_media_factory_set_shared(serv.factory, FALSE);
gst_rtsp_media_factory_set_latency(serv.factory, 2000);

gst_rtsp_mount_points_add_factory(serv.mounts, "input", serv.factory);

g_object_unref(serv.mounts);

gst_rtsp_media_factory_set_launch(serv.factory, "uridecodebin uri=udp://224.0.1.1:1001 ! rtph264pay config-interval=1 name=pay0 pt=96");

if (id=gst_rtsp_server_attach(serv.server, NULL) == 0)
{
    return -1;
}
   
GMainContext *glib_context = g_main_context_default();

bool quit_indicator = false;
while (quit_indicator == false)
{
    g_main_context_iteration(glib_context, /*allow blocking=*/false);
}

/* cleanup */
g_main_loop_quit(serv.loop);
g_source_remove(id);
g_object_unref(serv.server);
g_main_loop_unref(serv.loop);


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel