ossrs / srs-gb28181

GB28181 server based on SRS
https://ossrs.net
MIT License
83 stars 41 forks source link

同时开启GB28181和RTC会导致守护进程退出 #2143 #21

Open winlinvip opened 2 years ago

winlinvip commented 2 years ago

描述(Description)

描述你遇到了什么问题(Please description your issue here)

配置开启GB28181和RTC时,结束推流或者创建频道不推流,会导致守护进程退出

  1. SRS版本(Version): v4.0.59
  2. SRS的日志如下(Log):
    [2021-01-13 14:59:02.858][Warn][88233][076l3hr8][104] client disconnect peer. code=1007
    [2021-01-13 14:59:02.858][Trace][88233][s287aaa8] GB28181TCP: clear zombies=1 resources, conns=0, removing=0, unsubs=0
    [2021-01-13 14:59:02.858][Trace][88233][076l3hr8] GB28181TCP: disposing #0 resource(GB28181TcpConn)(0x2e55028), conns=0, disposing=1, zombies=0
    [2021-01-13 14:59:02.864][Trace][88233][95xq1035] gb28181: request client id=34020000001320000002 peer(192.168.1.64, 5060)
    [2021-01-13 14:59:02.865][Trace][88233][95xq1035] gb28181: request method=REGISTER, uri=sip:34020000002000000001@3402000000, version=SIP/2.0 expires=0
    [2021-01-13 14:59:03.792][Trace][88233][b868o610] gb28181: sip session=34020000001320000002 register expire
    [2021-01-13 14:59:03.792][Trace][88233][b868o610] gb28181: client id=34020000001320000002 sip session is remove
    [2021-01-13 14:59:03.792][Trace][88233][b868o610] gb28181: sip client finished.
    [2021-01-13 14:59:03.816][Trace][88233][zx20ip85] gb28181: client id=34020000001320000002@34020000001320000001,  ssrc=0x2455f0a, peer(192.168.1.64, 15060), rtmp muxer is alive
    [2021-01-13 14:59:04.866][Warn][88233][zx20ip85][11] gb28181: client id=34020000001320000002@34020000001320000001 ssrc=0x2455f0a, peer(192.168.1.64, 15060), no rtp data 2 in seconds, clean it, wait other port!
    [2021-01-13 14:59:23.830][Trace][88233][zx20ip85] gb28181: client id=34020000001320000002@34020000001320000001,  ssrc=0x2455f0a, peer(, 0), rtmp muxer is alive
    [2021-01-13 14:59:32.865][Trace][88233][zx20ip85] gb28181: client id=34020000001320000002@34020000001320000001, stream idle timeout, stop!!!
    [2021-01-13 14:59:32.865][Trace][88233][zx20ip85] gb28181: client id=34020000001320000002@34020000001320000001 rtmp muxer is remove
    [2021-01-13 14:59:32.865][Trace][88233][zx20ip85] client finished.
    [2021-01-13 14:59:32.865][Trace][88233][258p0476] cleanup when unpublish
    [2021-01-13 14:59:32.865][Trace][88233][258p0476] cleanup when unpublish, created=1, deliver=1
  3. SRS的配置如下(Config):
    
    listen                  1935;
    max_connections         1000;
    daemon              on;
    pid                 ./objs/srs.gb28181.pid;
    ff_log_dir          ./objs;
    srs_log_tank        file;
    srs_log_level       trace;
    srs_log_file        ./objs/srs.gb28181.log;

http_api { enabled on; listen 1985; }

stats { network 0; }

stream_caster { enabled on; caster gb28181; output rtmp://127.0.0.1:1935/live/[stream]; listen 9000; tcp_enable on; rtp_port_min 58200; rtp_port_max 58300; wait_keyframe on; rtp_idle_timeout 30; audio_enable off; jitterbuffer_enable on; host 192.168.1.164; auto_create_channel off; sip { enabled on; listen 5060; serial 34020000002000000001; realm 3402000000; ack_timeout 30; keepalive_timeout 120; auto_play on; invite_port_fixed on; query_catalog_interval 60; } } rtc_server { enabled on; listen 8000; candidate $CANDIDATE; }

vhost defaultVhost { rtc { enabled on; bframe discard; } }



**重现(Replay)**

> 重现Bug的步骤(How to replay bug?)

方法1. `使用上述配置启动srs,使用GB28181推流正常运行后,结束GB28181推流,等待几秒`
方法2. `使用srs提供的GB28181创建频道接口:http://ip:port/api/v1/gb28181&action=create_channel,等待几秒`

**期望行为(Expect)**

> 描述你期望发生的事情(Please describe your expectation)

频道正常关闭,SRS守护进程不自动退出。