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