diff --git a/src/rtsp_manager.cpp b/src/rtsp_manager.cpp index 1764df1..dbc003a 100644 --- a/src/rtsp_manager.cpp +++ b/src/rtsp_manager.cpp @@ -113,8 +113,8 @@ GstRTSPMediaFactory *RTSPManager::create_media_factory(const Camera &cam) " header-mode=1" " ! h264parse" " ! rtph264pay name=pay0 pt=96 config-interval=1 " - " t. ! queue max-size-buffers=1 max-size-time=0 max-size-bytes=0" - " ! fakesink sync=false )"; + " t. ! queue leaky=downstream max-size-buffers=3 max-size-bytes=0 max-size-time=0" + " ! fakesink sync=false async=false )"; LOG_INFO("[RTSP] Launch for " + cam.name + ": " + launch_str); @@ -122,7 +122,7 @@ GstRTSPMediaFactory *RTSPManager::create_media_factory(const Camera &cam) gst_rtsp_media_factory_set_launch(factory, launch_str.c_str()); // 先保持每个客户端独立 pipeline,逻辑简单可靠 - gst_rtsp_media_factory_set_shared(factory, FALSE); + gst_rtsp_media_factory_set_shared(factory, TRUE); // 客户端断开时不要乱 reset,交给我们自己处理 / 或干脆不动 gst_rtsp_media_factory_set_suspend_mode(factory, GST_RTSP_SUSPEND_MODE_NONE);