diff --git a/trunk/src/app/srs_app_rtmp_conn.cpp b/trunk/src/app/srs_app_rtmp_conn.cpp index 29947eaa2..1f1b256cb 100644 --- a/trunk/src/app/srs_app_rtmp_conn.cpp +++ b/trunk/src/app/srs_app_rtmp_conn.cpp @@ -960,6 +960,15 @@ srs_error_t SrsRtmpConn::acquire_publish(SrsLiveSource* source) srs_error_t err = srs_success; SrsRequest* req = info->req; + + // @see https://github.com/ossrs/srs/issues/2364 + // Check whether GB28181 stream is busy. +#if defined(SRS_GB28181) + SrsGb28181RtmpMuxer* gb28181 = _srs_gb28181->fetch_rtmpmuxer(req->stream); + if (gb28181 != NULL) { + return srs_error_new(ERROR_SYSTEM_STREAM_BUSY, "gb28181 stream %s busy", req->get_stream_url().c_str()); + } +#endif // Check whether RTC stream is busy. #ifdef SRS_RTC