diff --git a/src/rtsp_manager.cpp b/src/rtsp_manager.cpp index 5682b8d..36f00a3 100644 --- a/src/rtsp_manager.cpp +++ b/src/rtsp_manager.cpp @@ -192,7 +192,15 @@ gboolean RTSPManager::unmount_camera_in_main(gpointer data) { for (GstRTSPMedia *media : it->second) { - gst_rtsp_media_set_eos(media); + // ① 强制 EOS:VL C等客户端会自动断开 + GstElement *pipeline = gst_rtsp_media_get_element(media); + if (pipeline) + { + GstEvent *eos = gst_event_new_eos(); + gst_element_send_event(pipeline, eos); + gst_object_unref(pipeline); + } + gst_rtsp_media_unprepare(media); } it->second.clear();