gwuhaolin / livego

live video streaming server in golang
MIT License
9.67k stars 2k forks source link

panic: interface conversion: interface {} is nil, not float64 #120

Open myskull opened 4 years ago

myskull commented 4 years ago

服务搭建步骤: 1.git clone https://github.com/gwuhaolin/livego.git 2.cd livego 3.go build 4../livego 执行成功, INFO[2020-07-16T11:43:53+08:00]


| |   (_)_   _____ / ___| ___  
| |   | \ \ / / _ \ |  _ / _ \ 
| |___| |\ V /  __/ |_| | (_) |
|_____|_| \_/ \___|\____|\___/ 
    version: master

INFO[2020-07-16T11:43:53+08:00] HLS listen On :7002
INFO[2020-07-16T11:43:53+08:00] HLS server enable....
INFO[2020-07-16T11:43:53+08:00] RTMP Listen On :1935
INFO[2020-07-16T11:43:53+08:00] HTTP-FLV listen On :7001
INFO[2020-07-16T11:43:53+08:00] HTTP-API listen On :8090

5.使用易推流,推送本机地址: rtmp://192.168.0.152:1935/live/rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk 6.系统崩溃 panic: interface conversion: interface {} is nil, not float64

goroutine 2673 [running]: github.com/gwuhaolin/livego/protocol/rtmp/core.(ConnServer).connect(0xc000414000, 0xc0000a0190, 0x2, 0x3, 0xc0000a0180, 0x3) /Users/maxiao/Projects/cp/livego/protocol/rtmp/core/conn_server.go:131 +0x37e github.com/gwuhaolin/livego/protocol/rtmp/core.(ConnServer).handleCmdMsg(0xc000414000, 0xc000069d38, 0x0, 0x0) /Users/maxiao/Projects/cp/livego/protocol/rtmp/core/conn_server.go:259 +0x958 github.com/gwuhaolin/livego/protocol/rtmp/core.(ConnServer).ReadMsg(0xc000414000, 0x1be3b18, 0x0) /Users/maxiao/Projects/cp/livego/protocol/rtmp/core/conn_server.go:314 +0xb1 github.com/gwuhaolin/livego/protocol/rtmp.(Server).handleConn(0xc000202000, 0xc00007c240, 0x4, 0x164e2a0) /Users/maxiao/Projects/cp/livego/protocol/rtmp/rtmp.go:108 +0x22a created by github.com/gwuhaolin/livego/protocol/rtmp.(*Server).Serve /Users/maxiao/Projects/cp/livego/protocol/rtmp/rtmp.go:96 +0x208

7.我的环境: mac

pupuk commented 3 years ago

遇到同样的问题,请问解决了嘛

fzdy1914 commented 2 years ago

image

原因:推流端 metadata 带的格式不一定相同,string 和 float64 混用现象严重 (哪怕是obs,不同版本/平台带的数据格式都不一定一样)。 不过是nil 的我还真是第一次见。 建议: parse metadata 让人痛苦,不如别parse了。建议用OBS。

q191201771 commented 2 years ago

Go流媒体项目LAL中有兼容性处理过这类问题,感兴趣可以看看, https://github.com/q191201771/lal