我正在尝试制作一个微小的cpp程序模块,从相机生成实时流,我使用的是gstreamer1.0,我有插件1.6和gst-rtsp-server-1.6.0。我能够开始流,但当我试图停止并重新开始时,它不会重新开始。 我的管道是:
std_pipeline = "videotestsrc ! video/x-raw ! "
"videoconvert ! x264enc ! rtph264pay"
我正在使用以下函数初始化:
gst_rtsp_server_new();
gst_rtsp_server_get_mount_points(server);
gst_rtsp_media_factory_new();
gst_rtsp_media_factory_set_launch(factory, std_pipeline);
gst_rtsp_mount_points_add_factory(mounts, "/stream", factory);
gst_rtsp_server_attach(server, NULL);
开始流我在另一个线程中调用:
g_main_loop_run(loop);
我试图用以下方法摧毁一切:
GstRTSPSessionPool *pool
gst_rtsp_server_get_session_pool (server);
gst_rtsp_session_pool_filter (pool,
(GstRTSPSessionPoolFilterFunc) remove_func, server);
g_object_unref (pool);
g_source_remove(server_id);
mounts = gst_rtsp_server_get_mount_points(server);
gst_rtsp_mount_points_remove_factory(mounts, "/stream");
gst_object_unref(mounts);
g_main_loop_quit(loop);
并且流停止,但是当我尝试初始化并再次启动流时,它无法启动。