q191201771 / lalmax

lalserver with srt/webrtc/whip/whep/http-fmp4/hls(fmp4)/low latency hls(llhls)/gb28181. 卍解
MIT License
89 stars 20 forks source link

windows上 gb28181播放,然后关闭lalmax,再打开lalmax后失败 #60

Closed BleethNie closed 5 months ago

BleethNie commented 6 months ago

步骤

响应参数

{
    "code": 1000,
    "msg": "success",
    "data": {
        "stream_name": "34020000001320000001"
    }
}
E:\01_Software\lalmax>lalmax.exe
2024/03/18 17:46:33.185520  WARN config file did not specify in the command line, try to load it in the usual path. - main.go:54
2024/03/18 17:46:33.185520  WARN lalmax.conf.json not exist. - main.go:66
2024/03/18 17:46:33.185520  WARN .\conf\lalmax.conf.json exist. using it as config file. - main.go:63
2024/03/18 17:46:33.186033  WARN config file did not specify in the command line, try to load it in the usual path. - server_manager__.go:75
2024/03/18 17:46:33.186033  WARN lalserver.conf.json not exist. - server_manager__.go:822
2024/03/18 17:46:33.186033  WARN .\conf\lalserver.conf.json exist. using it as config file. - server_manager__.go:819
2024/03/18 17:46:33.186546  INFO initial log succ. - config.go:247
2024/03/18 17:46:33.186546  INFO 
    __    ___    __
   / /   /   |  / /
  / /   / /| | / /
 / /___/ ___ |/ /___
/_____/_/  |_/_____/
 - config.go:250
2024/03/18 17:46:33.187059  INFO load conf succ. raw content={ "# doc of config": "https://pengrl.com/lal/#/ConfigBrief", "conf_version": "v0.4.1", "rtmp": { "enable": true, "addr": ":1935", "rtmps_enable": true, "rtmps_addr": ":4935", "rtmps_cert_file": "./conf/cert.pem", "rtmps_key_file": "./conf/key.pem", "gop_num": 1, "single_gop_max_frame_num": 0, "merge_write_size": 0 }, "in_session": { "add_dummy_audio_enable": false, "add_dummy_audio_wait_audio_ms": 150 }, "default_http": { "http_listen_addr": ":8080", "https_listen_addr": ":4433", "https_cert_file": "./conf/cert.pem", "https_key_file": "./conf/key.pem" }, "httpflv": { "enable": true, "enable_https": true, "url_pattern": "/", "gop_num": 0, "single_gop_max_frame_num": 0 }, "hls": { "enable": false, "enable_https": false, "url_pattern": "/hls/", "out_path": "./lal_record/hls/", "fragment_duration_ms": 3000, "fragment_num": 6, "delete_threshold": 6, "cleanup_mode": 1, "use_memory_as_disk_flag": false, "sub_session_timeout_ms": 30000, "sub_session_hash_key": "" }, "httpts": { "enable": false, "enable_https": false, "url_pattern": "/", "gop_num": 0, "single_gop_max_frame_num": 0 }, "rtsp": { "enable": true, "addr": ":5544", "rtsps_enable": true, "rtsps_addr": ":5322", "rtsps_cert_file": "./conf/cert.pem", "rtsps_key_file": "./conf/key.pem", "out_wait_key_frame_flag": true, "auth_enable": false, "auth_method": 1, "username": "q191201771", "password": "pengrl" }, "record": { "enable_flv": false, "flv_out_path": "./lal_record/flv/", "enable_mpegts": false, "mpegts_out_path": "./lal_record/mpegts" }, "relay_push": { "enable": false, "addr_list":[ ] }, "static_relay_pull": { "enable": false, "addr": "" }, "http_api": { "enable": true, "addr": ":8083" }, "server_id": "1", "http_notify": { "enable": false, "update_interval_sec": 5, "on_update": "http://127.0.0.1:10101/on_update", "on_pub_start": "http://127.0.0.1:10101/on_pub_start", "on_pub_stop": "http://127.0.0.1:10101/on_pub_stop", "on_sub_start": "http://127.0.0.1:10101/on_sub_start", "on_sub_stop": "http://127.0.0.1:10101/on_sub_stop", "on_relay_pull_start": "http://127.0.0.1:10101/on_relay_pull_start", "on_relay_pull_stop": "http://127.0.0.1:10101/on_relay_pull_stop", "on_rtmp_connect": "http://127.0.0.1:10101/on_rtmp_connect", "on_server_start": "http://127.0.0.1:10101/on_server_start", "on_hls_make_ts": "http://127.0.0.1:10101/on_hls_make_ts" }, "simple_auth": { "key": "q191201771", "dangerous_lal_secret": "pengrl", "pub_rtmp_enable": false, "sub_rtmp_enable": false, "sub_httpflv_enable": false, "sub_httpts_enable": false, "pub_rtsp_enable": false, "sub_rtsp_enable": false, "hls_m3u8_enable": false }, "pprof": { "enable": true, "addr": ":8084" }, "log": { "level": 1, "filename": "./logs/lalmax.log", "is_to_stdout": true, "is_rotate_daily": true, "short_file_flag": true, "timestamp_flag": true, "timestamp_with_ms_flag": true, "level_flag": true, "assert_behavior": 1 }, "debug": { "log_group_interval_sec": 30, "log_group_max_group_num": 10, "log_group_max_sub_num_per_group": 10 } }  parsed=&{ConfVersion:v0.4.1 RtmpConfig:{Enable:true Addr::1935 RtmpsEnable:true RtmpsAddr::4935 RtmpsCertFile:./conf/cert.pem RtmpsKeyFile:./conf/key.pem GopNum:1 SingleGopMaxFrameNum:0 MergeWriteSize:0} InSessionConfig:{AddDummyAudioEnable:false AddDummyAudioWaitAudioMs:150} DefaultHttpConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem}} HttpflvConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:true EnableHttps:true UrlPattern:/} GopNum:0 SingleGopMaxFrameNum:0} HlsConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:false EnableHttps:false UrlPattern:/hls/} UseMemoryAsDiskFlag:false MuxerConfig:{OutPath:./lal_record/hls/ FragmentDurationMs:3000 FragmentNum:6 DeleteThreshold:6 CleanupMode:1} SubSessionTimeoutMs:30000 SubSessionHashKey:} HttptsConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:false EnableHttps:false UrlPattern:/} GopNum:0 SingleGopMaxFrameNum:0} RtspConfig:{Enable:true Addr::5544 RtspsEnable:true RtspsAddr::5322 RtspsCertFile:./conf/cert.pem RtspsKeyFile:./conf/key.pem OutWaitKeyFrameFlag:true ServerAuthConfig:{AuthEnable:false AuthMethod:1 UserName:q191201771 PassWord:pengrl}} RecordConfig:{EnableFlv:false FlvOutPath:./lal_record/flv/ EnableMpegts:false MpegtsOutPath:./lal_record/mpegts} RelayPushConfig:{Enable:false AddrList:[]} StaticRelayPullConfig:{Enable:false Addr:} HttpApiConfig:{Enable:true Addr::8083} ServerId:1 HttpNotifyConfig:{Enable:false UpdateIntervalSec:5 OnServerStart:http://127.0.0.1:10101/on_server_start OnUpdate:http://127.0.0.1:10101/on_update OnPubStart:http://127.0.0.1:10101/on_pub_start OnPubStop:http://127.0.0.1:10101/on_pub_stop OnSubStart:http://127.0.0.1:10101/on_sub_start OnSubStop:http://127.0.0.1:10101/on_sub_stop OnRelayPullStart:http://127.0.0.1:10101/on_relay_pull_start OnRelayPullStop:http://127.0.0.1:10101/on_relay_pull_stop OnRtmpConnect:http://127.0.0.1:10101/on_rtmp_connect OnHlsMakeTs:http://127.0.0.1:10101/on_hls_make_ts} SimpleAuthConfig:{Key:q191201771 DangerousLalSecret:pengrl PubRtmpEnable:false SubRtmpEnable:false SubHttpflvEnable:false SubHttptsEnable:false PubRtspEnable:false SubRtspEnable:false HlsM3u8Enable:false} PprofConfig:{Enable:true Addr::8084} LogConfig:{Level:1 Filename:./logs/lalmax.log IsToStdout:true IsRotateDaily:true IsRotateHourly:false ShortFileFlag:true TimestampFlag:true TimestampWithMsFlag:true LevelFlag:true AssertBehavior:1 HookBackendOutFn:<nil>} DebugConfig:{LogGroupIntervalSec:30 LogGroupMaxGroupNum:10 LogGroupMaxSubNumPerGroup:10}} - config.go:344
2024/03/18 17:46:33.187059  INFO      start: 2024-03-18 17:46:33.175 - base.go:35
2024/03/18 17:46:33.187569  INFO         wd: E:\01_Software\lalmax - base.go:36
2024/03/18 17:46:33.187569  INFO       args: lalmax.exe - base.go:37
2024/03/18 17:46:33.188081  INFO    bininfo: GitTag=unknown. GitCommitLog=unknown. GitStatus=unknown. BuildTime=unknown. GoVersion=unknown. runtime=windows/amd64. - base.go:38
2024/03/18 17:46:33.188081  INFO    version: lal v0.36.7 (github.com/q191201771/lal) - base.go:39
2024/03/18 17:46:33.188081  INFO     github: https://github.com/q191201771/lal - base.go:40
2024/03/18 17:46:33.188593  INFO        doc: https://pengrl.com/lal - base.go:41
2024/03/18 17:46:33.188593  INFO create srt server - server.go:54
2024/03/18 17:46:33.190155  INFO webrtc ice udp listen. port=4888 - server.go:40
2024/03/18 17:46:33.210611  INFO webrtc ice tcp listen. port=4888 - server.go:56
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] POST   /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] OPTIONS /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] DELETE /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] POST   /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] OPTIONS /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] DELETE /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] GET    /live/m4s/:streamid       --> lalmax/server.(*LalMaxServer).HandleHttpFmp4-fm (4 handlers)
[GIN-debug] GET    /live/hls/:streamid/:type --> lalmax/server.(*LalMaxServer).HandleHls-fm (4 handlers)
[GIN-debug] POST   /api/ctrl/onvif/pull      --> lalmax/server.(*LalMaxServer).HandleOnvifPull-fm (4 handlers)
[GIN-debug] GET    /api/gb/device_infos      --> lalmax/gb28181.(*GbLogic).GetDeviceInfos-fm (4 handlers)
[GIN-debug] POST   /api/gb/start_play        --> lalmax/gb28181.(*GbLogic).StartPlay-fm (4 handlers)
[GIN-debug] POST   /api/gb/stop_play         --> lalmax/gb28181.(*GbLogic).StopPlay-fm (4 handlers)
[GIN-debug] POST   /api/gb/update_all_notify --> lalmax/gb28181.(*GbLogic).UpdateAllNotify-fm (4 handlers)
[GIN-debug] POST   /api/gb/update_notify     --> lalmax/gb28181.(*GbLogic).UpdateNotify-fm (4 handlers)
2024/03/18 17:46:33.213208  INFO lalmax http listen. addr=127.0.0.1:1290 - server.go:100
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on 127.0.0.1:1290
2024/03/18 17:46:33.213208  INFO start web pprof listen. addr=:8084 - server_manager__.go:168
2024/03/18 17:46:33.213869  INFO add http listen for httpflv. addr=:8080, pattern=/ - server_manager__.go:190
2024/03/18 17:46:33.213869  INFO srt server listen addr::6001 - server.go:75
2024/03/18 17:46:33.213797  INFO gb28181 media server udp listen success, addr::30000 - server.go:66
2024/03/18 17:46:33.213869  INFO gb28181 media server tcp listen success, addr::30000 - server.go:37
2024/03/18 17:46:33.213869  INFO gb28181 sip listen success, network:udp listen addr:0.0.0.0:5060 - server.go:114
2024/03/18 17:46:33.214387  INFO add https listen for httpflv. addr=:4433, pattern=/ - server_manager__.go:201
2024/03/18 17:46:33.214902  INFO start rtmp server listen. addr=:1935 - server.go:56
2024/03/18 17:46:33.215416  INFO start rtmps server listen. addr=:4935 - server.go:71
2024/03/18 17:46:33.215416  INFO start rtsp server listen. addr=:5544 - server.go:81
2024/03/18 17:46:33.215930  INFO start rtsps server listen. addr=:5322 - server.go:95
2024/03/18 17:46:33.215930  INFO start http-api server listen. addr=:8083 - http_api.go:48
2024/03/18 17:46:33.231059  INFO gb28181 conn, remoteaddr:192.168.1.65:15060 localaddr:[::]:30000 - conn.go:66
2024/03/18 17:46:33.232020 ERROR invalid ssrc:524429001 - conn.go:106
2024/03/18 17:46:33.232020  INFO conn close, err:invalid ssrc:524429001 - conn.go:56
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x30 pc=0xe6bf11]

goroutine 99 [running]:
github.com/q191201771/lal/pkg/logic.(*ServerManager).DelCustomizePubSession(0xc0000160f0, {0x0, 0x0})
        E:/golang/GOPATH/pkg/mod/github.com/q191201771/lal@v0.36.7/pkg/logic/server_manager__.go:394 +0x91
lalmax/gb28181/mediaserver.(*Conn).Serve.func1()
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/conn.go:63 +0xbe
lalmax/gb28181/mediaserver.(*Conn).Serve(0xc000000000)
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/conn.go:107 +0x7c7
created by lalmax/gb28181/mediaserver.(*GB28181MediaServer).Start.func2 in goroutine 67
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/server.go:77 +0x4cc
ZSC714725 commented 5 months ago

步骤

  • 自己打包lalmax为lalmax.exe
  • 配置并启动lalmax.exe
  • 海康摄像头中配置gb28181
  • lalmax.exe cmd 窗口日志中可以看到和设备的交互信息
  • 执行推流 http://127.0.0.1:1290/api/gb/start_play
{
    "device_id": "41010500002000000006",      
    "channel_id": "34020000001320000001",   
    "network": "udp" 
}

响应参数

{
    "code": 1000,
    "msg": "success",
    "data": {
        "stream_name": "34020000001320000001"
    }
}
  • 等待5s,关闭lalmax.exe
  • 重启lalmax.exe,此时报错,信息如下
E:\01_Software\lalmax>lalmax.exe
2024/03/18 17:46:33.185520 �[22;33m WARN �[0mconfig file did not specify in the command line, try to load it in the usual path. - main.go:54
2024/03/18 17:46:33.185520 �[22;33m WARN �[0mlalmax.conf.json not exist. - main.go:66
2024/03/18 17:46:33.185520 �[22;33m WARN �[0m.\conf\lalmax.conf.json exist. using it as config file. - main.go:63
2024/03/18 17:46:33.186033 �[22;33m WARN �[0mconfig file did not specify in the command line, try to load it in the usual path. - server_manager__.go:75
2024/03/18 17:46:33.186033 �[22;33m WARN �[0mlalserver.conf.json not exist. - server_manager__.go:822
2024/03/18 17:46:33.186033 �[22;33m WARN �[0m.\conf\lalserver.conf.json exist. using it as config file. - server_manager__.go:819
2024/03/18 17:46:33.186546 �[22;36m INFO �[0minitial log succ. - config.go:247
2024/03/18 17:46:33.186546 �[22;36m INFO �[0m
    __    ___    __
   / /   /   |  / /
  / /   / /| | / /
 / /___/ ___ |/ /___
/_____/_/  |_/_____/
 - config.go:250
2024/03/18 17:46:33.187059 �[22;36m INFO �[0mload conf succ. raw content={ "# doc of config": "https://pengrl.com/lal/#/ConfigBrief", "conf_version": "v0.4.1", "rtmp": { "enable": true, "addr": ":1935", "rtmps_enable": true, "rtmps_addr": ":4935", "rtmps_cert_file": "./conf/cert.pem", "rtmps_key_file": "./conf/key.pem", "gop_num": 1, "single_gop_max_frame_num": 0, "merge_write_size": 0 }, "in_session": { "add_dummy_audio_enable": false, "add_dummy_audio_wait_audio_ms": 150 }, "default_http": { "http_listen_addr": ":8080", "https_listen_addr": ":4433", "https_cert_file": "./conf/cert.pem", "https_key_file": "./conf/key.pem" }, "httpflv": { "enable": true, "enable_https": true, "url_pattern": "/", "gop_num": 0, "single_gop_max_frame_num": 0 }, "hls": { "enable": false, "enable_https": false, "url_pattern": "/hls/", "out_path": "./lal_record/hls/", "fragment_duration_ms": 3000, "fragment_num": 6, "delete_threshold": 6, "cleanup_mode": 1, "use_memory_as_disk_flag": false, "sub_session_timeout_ms": 30000, "sub_session_hash_key": "" }, "httpts": { "enable": false, "enable_https": false, "url_pattern": "/", "gop_num": 0, "single_gop_max_frame_num": 0 }, "rtsp": { "enable": true, "addr": ":5544", "rtsps_enable": true, "rtsps_addr": ":5322", "rtsps_cert_file": "./conf/cert.pem", "rtsps_key_file": "./conf/key.pem", "out_wait_key_frame_flag": true, "auth_enable": false, "auth_method": 1, "username": "q191201771", "password": "pengrl" }, "record": { "enable_flv": false, "flv_out_path": "./lal_record/flv/", "enable_mpegts": false, "mpegts_out_path": "./lal_record/mpegts" }, "relay_push": { "enable": false, "addr_list":[ ] }, "static_relay_pull": { "enable": false, "addr": "" }, "http_api": { "enable": true, "addr": ":8083" }, "server_id": "1", "http_notify": { "enable": false, "update_interval_sec": 5, "on_update": "http://127.0.0.1:10101/on_update", "on_pub_start": "http://127.0.0.1:10101/on_pub_start", "on_pub_stop": "http://127.0.0.1:10101/on_pub_stop", "on_sub_start": "http://127.0.0.1:10101/on_sub_start", "on_sub_stop": "http://127.0.0.1:10101/on_sub_stop", "on_relay_pull_start": "http://127.0.0.1:10101/on_relay_pull_start", "on_relay_pull_stop": "http://127.0.0.1:10101/on_relay_pull_stop", "on_rtmp_connect": "http://127.0.0.1:10101/on_rtmp_connect", "on_server_start": "http://127.0.0.1:10101/on_server_start", "on_hls_make_ts": "http://127.0.0.1:10101/on_hls_make_ts" }, "simple_auth": { "key": "q191201771", "dangerous_lal_secret": "pengrl", "pub_rtmp_enable": false, "sub_rtmp_enable": false, "sub_httpflv_enable": false, "sub_httpts_enable": false, "pub_rtsp_enable": false, "sub_rtsp_enable": false, "hls_m3u8_enable": false }, "pprof": { "enable": true, "addr": ":8084" }, "log": { "level": 1, "filename": "./logs/lalmax.log", "is_to_stdout": true, "is_rotate_daily": true, "short_file_flag": true, "timestamp_flag": true, "timestamp_with_ms_flag": true, "level_flag": true, "assert_behavior": 1 }, "debug": { "log_group_interval_sec": 30, "log_group_max_group_num": 10, "log_group_max_sub_num_per_group": 10 } }  parsed=&{ConfVersion:v0.4.1 RtmpConfig:{Enable:true Addr::1935 RtmpsEnable:true RtmpsAddr::4935 RtmpsCertFile:./conf/cert.pem RtmpsKeyFile:./conf/key.pem GopNum:1 SingleGopMaxFrameNum:0 MergeWriteSize:0} InSessionConfig:{AddDummyAudioEnable:false AddDummyAudioWaitAudioMs:150} DefaultHttpConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem}} HttpflvConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:true EnableHttps:true UrlPattern:/} GopNum:0 SingleGopMaxFrameNum:0} HlsConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:false EnableHttps:false UrlPattern:/hls/} UseMemoryAsDiskFlag:false MuxerConfig:{OutPath:./lal_record/hls/ FragmentDurationMs:3000 FragmentNum:6 DeleteThreshold:6 CleanupMode:1} SubSessionTimeoutMs:30000 SubSessionHashKey:} HttptsConfig:{CommonHttpServerConfig:{CommonHttpAddrConfig:{HttpListenAddr::8080 HttpsListenAddr::4433 HttpsCertFile:./conf/cert.pem HttpsKeyFile:./conf/key.pem} Enable:false EnableHttps:false UrlPattern:/} GopNum:0 SingleGopMaxFrameNum:0} RtspConfig:{Enable:true Addr::5544 RtspsEnable:true RtspsAddr::5322 RtspsCertFile:./conf/cert.pem RtspsKeyFile:./conf/key.pem OutWaitKeyFrameFlag:true ServerAuthConfig:{AuthEnable:false AuthMethod:1 UserName:q191201771 PassWord:pengrl}} RecordConfig:{EnableFlv:false FlvOutPath:./lal_record/flv/ EnableMpegts:false MpegtsOutPath:./lal_record/mpegts} RelayPushConfig:{Enable:false AddrList:[]} StaticRelayPullConfig:{Enable:false Addr:} HttpApiConfig:{Enable:true Addr::8083} ServerId:1 HttpNotifyConfig:{Enable:false UpdateIntervalSec:5 OnServerStart:http://127.0.0.1:10101/on_server_start OnUpdate:http://127.0.0.1:10101/on_update OnPubStart:http://127.0.0.1:10101/on_pub_start OnPubStop:http://127.0.0.1:10101/on_pub_stop OnSubStart:http://127.0.0.1:10101/on_sub_start OnSubStop:http://127.0.0.1:10101/on_sub_stop OnRelayPullStart:http://127.0.0.1:10101/on_relay_pull_start OnRelayPullStop:http://127.0.0.1:10101/on_relay_pull_stop OnRtmpConnect:http://127.0.0.1:10101/on_rtmp_connect OnHlsMakeTs:http://127.0.0.1:10101/on_hls_make_ts} SimpleAuthConfig:{Key:q191201771 DangerousLalSecret:pengrl PubRtmpEnable:false SubRtmpEnable:false SubHttpflvEnable:false SubHttptsEnable:false PubRtspEnable:false SubRtspEnable:false HlsM3u8Enable:false} PprofConfig:{Enable:true Addr::8084} LogConfig:{Level:1 Filename:./logs/lalmax.log IsToStdout:true IsRotateDaily:true IsRotateHourly:false ShortFileFlag:true TimestampFlag:true TimestampWithMsFlag:true LevelFlag:true AssertBehavior:1 HookBackendOutFn:<nil>} DebugConfig:{LogGroupIntervalSec:30 LogGroupMaxGroupNum:10 LogGroupMaxSubNumPerGroup:10}} - config.go:344
2024/03/18 17:46:33.187059 �[22;36m INFO �[0m     start: 2024-03-18 17:46:33.175 - base.go:35
2024/03/18 17:46:33.187569 �[22;36m INFO �[0m        wd: E:\01_Software\lalmax - base.go:36
2024/03/18 17:46:33.187569 �[22;36m INFO �[0m      args: lalmax.exe - base.go:37
2024/03/18 17:46:33.188081 �[22;36m INFO �[0m   bininfo: GitTag=unknown. GitCommitLog=unknown. GitStatus=unknown. BuildTime=unknown. GoVersion=unknown. runtime=windows/amd64. - base.go:38
2024/03/18 17:46:33.188081 �[22;36m INFO �[0m   version: lal v0.36.7 (github.com/q191201771/lal) - base.go:39
2024/03/18 17:46:33.188081 �[22;36m INFO �[0m    github: https://github.com/q191201771/lal - base.go:40
2024/03/18 17:46:33.188593 �[22;36m INFO �[0m       doc: https://pengrl.com/lal - base.go:41
2024/03/18 17:46:33.188593 �[22;36m INFO �[0mcreate srt server - server.go:54
2024/03/18 17:46:33.190155 �[22;36m INFO �[0mwebrtc ice udp listen. port=4888 - server.go:40
2024/03/18 17:46:33.210611 �[22;36m INFO �[0mwebrtc ice tcp listen. port=4888 - server.go:56
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] POST   /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] OPTIONS /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] DELETE /whip                     --> lalmax/server.(*LalMaxServer).HandleWHIP-fm (4 handlers)
[GIN-debug] POST   /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] OPTIONS /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] DELETE /whep                     --> lalmax/server.(*LalMaxServer).HandleWHEP-fm (4 handlers)
[GIN-debug] GET    /live/m4s/:streamid       --> lalmax/server.(*LalMaxServer).HandleHttpFmp4-fm (4 handlers)
[GIN-debug] GET    /live/hls/:streamid/:type --> lalmax/server.(*LalMaxServer).HandleHls-fm (4 handlers)
[GIN-debug] POST   /api/ctrl/onvif/pull      --> lalmax/server.(*LalMaxServer).HandleOnvifPull-fm (4 handlers)
[GIN-debug] GET    /api/gb/device_infos      --> lalmax/gb28181.(*GbLogic).GetDeviceInfos-fm (4 handlers)
[GIN-debug] POST   /api/gb/start_play        --> lalmax/gb28181.(*GbLogic).StartPlay-fm (4 handlers)
[GIN-debug] POST   /api/gb/stop_play         --> lalmax/gb28181.(*GbLogic).StopPlay-fm (4 handlers)
[GIN-debug] POST   /api/gb/update_all_notify --> lalmax/gb28181.(*GbLogic).UpdateAllNotify-fm (4 handlers)
[GIN-debug] POST   /api/gb/update_notify     --> lalmax/gb28181.(*GbLogic).UpdateNotify-fm (4 handlers)
2024/03/18 17:46:33.213208 �[22;36m INFO �[0mlalmax http listen. addr=127.0.0.1:1290 - server.go:100
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on 127.0.0.1:1290
2024/03/18 17:46:33.213208 �[22;36m INFO �[0mstart web pprof listen. addr=:8084 - server_manager__.go:168
2024/03/18 17:46:33.213869 �[22;36m INFO �[0madd http listen for httpflv. addr=:8080, pattern=/ - server_manager__.go:190
2024/03/18 17:46:33.213869 �[22;36m INFO �[0msrt server listen addr::6001 - server.go:75
2024/03/18 17:46:33.213797 �[22;36m INFO �[0mgb28181 media server udp listen success, addr::30000 - server.go:66
2024/03/18 17:46:33.213869 �[22;36m INFO �[0mgb28181 media server tcp listen success, addr::30000 - server.go:37
2024/03/18 17:46:33.213869 �[22;36m INFO �[0mgb28181 sip listen success, network:udp listen addr:0.0.0.0:5060 - server.go:114
2024/03/18 17:46:33.214387 �[22;36m INFO �[0madd https listen for httpflv. addr=:4433, pattern=/ - server_manager__.go:201
2024/03/18 17:46:33.214902 �[22;36m INFO �[0mstart rtmp server listen. addr=:1935 - server.go:56
2024/03/18 17:46:33.215416 �[22;36m INFO �[0mstart rtmps server listen. addr=:4935 - server.go:71
2024/03/18 17:46:33.215416 �[22;36m INFO �[0mstart rtsp server listen. addr=:5544 - server.go:81
2024/03/18 17:46:33.215930 �[22;36m INFO �[0mstart rtsps server listen. addr=:5322 - server.go:95
2024/03/18 17:46:33.215930 �[22;36m INFO �[0mstart http-api server listen. addr=:8083 - http_api.go:48
2024/03/18 17:46:33.231059 �[22;36m INFO �[0mgb28181 conn, remoteaddr:192.168.1.65:15060 localaddr:[::]:30000 - conn.go:66
2024/03/18 17:46:33.232020 �[22;31mERROR �[0minvalid ssrc:524429001 - conn.go:106
2024/03/18 17:46:33.232020 �[22;36m INFO �[0mconn close, err:invalid ssrc:524429001 - conn.go:56
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x30 pc=0xe6bf11]

goroutine 99 [running]:
github.com/q191201771/lal/pkg/logic.(*ServerManager).DelCustomizePubSession(0xc0000160f0, {0x0, 0x0})
        E:/golang/GOPATH/pkg/mod/github.com/q191201771/lal@v0.36.7/pkg/logic/server_manager__.go:394 +0x91
lalmax/gb28181/mediaserver.(*Conn).Serve.func1()
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/conn.go:63 +0xbe
lalmax/gb28181/mediaserver.(*Conn).Serve(0xc000000000)
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/conn.go:107 +0x7c7
created by lalmax/gb28181/mediaserver.(*GB28181MediaServer).Start.func2 in goroutine 67
        E:/02_Resource/01_Code/manager/lalmax/gb28181/mediaserver/server.go:77 +0x4cc

修复pr: https://github.com/q191201771/lalmax/pull/62