diff --git a/server/WebApi.cpp b/server/WebApi.cpp
index 8eb5417..839df9d 100644
--- a/server/WebApi.cpp
+++ b/server/WebApi.cpp
@@ -1155,6 +1155,8 @@ void installWebApi() {
 }
 
 void unInstallWebApi(){
+    RtpSelector::Instance().clear();
+
     {
         lock_guard<recursive_mutex> lck(s_proxyMapMtx);
         s_proxyMap.clear();
@@ -1164,6 +1166,7 @@ void unInstallWebApi(){
         lock_guard<recursive_mutex> lck(s_ffmpegMapMtx);
         s_ffmpegMap.clear();
     }
+
     {
 #if defined(ENABLE_RTPPROXY)
         lock_guard<recursive_mutex> lck(s_rtpServerMapMtx);
diff --git a/src/Rtp/RtpSelector.cpp b/src/Rtp/RtpSelector.cpp
index 0ab553f..b895de2 100644
--- a/src/Rtp/RtpSelector.cpp
+++ b/src/Rtp/RtpSelector.cpp
@@ -15,6 +15,11 @@ namespace mediakit{
 
 INSTANCE_IMP(RtpSelector);
 
+void RtpSelector::clear(){
+    lock_guard<decltype(_mtx_map)> lck(_mtx_map);
+    _map_rtp_process.clear();
+}
+
 bool RtpSelector::inputRtp(const Socket::Ptr &sock, const char *data, int data_len,
                            const struct sockaddr *addr,uint32_t *dts_out) {
     //使用ssrc为流id
diff --git a/src/Rtp/RtpSelector.h b/src/Rtp/RtpSelector.h
index 33a0125..54be19c 100644
--- a/src/Rtp/RtpSelector.h
+++ b/src/Rtp/RtpSelector.h
@@ -56,6 +56,11 @@ public:
     static RtpSelector &Instance();
 
     /**
+     * 清空所有对象
+     */
+    void clear();
+
+    /**
      * 输入多个rtp流,根据ssrc分流
      * @param sock 本地socket
      * @param data 收到的数据