Closed BleethNie closed 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
步骤
自己打包lalmax为lalmax.exe
配置并启动lalmax.exe
海康摄像头中配置gb28181
lalmax.exe cmd 窗口日志中可以看到和设备的交互信息
执行推流 http://127.0.0.1:1290/api/gb/start_play
响应参数
等待5s,关闭lalmax.exe
重启lalmax.exe,此时报错,信息如下