Compare commits

...

13 Commits

Author SHA1 Message Date
langhuihui
19988e491e fix: h265 2023-11-29 11:28:30 +08:00
langhuihui
f17db659dd chore: modify conf dir name 2023-11-27 20:48:20 +08:00
langhuihui
fdef232edc feat: add av1 and opus support 2023-11-17 17:42:41 +08:00
langhuihui
eb3ffe6cd6 fix: repull will dead 2023-11-16 19:28:54 +08:00
langhuihui
9cbbee3f54 fix: record hls ts duration wrong 2023-11-07 11:11:11 +08:00
langhuihui
3bdc5074e0 fix: rtsp relay 2023-11-03 14:12:56 +08:00
langhuihui
35a10e1c39 fix: rtsp repull bug 2023-11-03 09:45:51 +08:00
langhuihui
722f7d1a5e feat: 兼容不规范的 rtp 包和 sdp 2023-10-27 18:04:11 +08:00
langhuihui
1399beef60 - Engine aspect
1. Add a flow state
2. Add regular expressions to remote push pull
3. Add InviteTrack event
4. Fix several bugs

- In terms of plugins

1. GB 28181 Video Streaming Automatic Shutdown for Unmanned Viewing
2. HLS fixes playback issues and upgrades Gohlslib library
3. Record repairs HLS recording, fixes API method for passing fragment parameters
4. RTMP fixes issues caused by TCP connection failure
5. Upgrade gortsplib to v4 using rtsp
6. Webrtc fixes bug in subscription multiplexing
7. Webrtransport does not configure certificates to automatically use built-in certificates

- 引擎方面

1. 增加一个流状态
2. 远端推拉增加正则表达式
3. 增加 InviteTrack 事件
4. 修复若干 bug

- 插件方面

1. gb28181 录像流无人观看自动关闭
2. hls 修复播放问题,升级 gohlslib 库
3. record 修复 hls 录制,修复 api 方式传递 fragment 参数
4. rtmp 修复因tcp 连接失败导致的问题
5. rtsp 升级 gortsplib到 v4
6. webrtc 修复订阅多路的 bug
7. webrtransport 不配置证书自动使用内置证书
2023-10-23 14:50:13 +08:00
langhuihui
84f9a02e0a fix: hls pull ts no content-length 2023-10-23 10:09:15 +08:00
langhuihui
7f97d26a2b fix: hls record and play 2023-10-18 14:06:35 +08:00
langhuihui
17dab13edf feat: pull and push support regexp
feat: add pagation support
 fix: stop subscribe when error
2023-09-28 15:42:50 +08:00
langhuihui
1218158b3e fix: panic and hls record 2023-09-25 15:12:39 +08:00
12 changed files with 124 additions and 99 deletions

View File

@@ -82,7 +82,7 @@ Inspired by:
- [mp4ff](https://github.com/edgeware/mp4ff) mp4 file format library [@edgeware](https://github.com/edgeware)
- [gosip](https://github.com/ghettovoice/gosip) go sip library [@ghettovoice](https://github.com/ghettovoice)
- [webrtc](https://github.com/pion/webrtc) go library and whole [@pion](https://github.com/pion) team
- [gortsplib](https://github.com/aler9/gortsplib) rtsp library [@aler9](https://github.com/aler9)
- [gortsplib](https://github.com/bluenviron/gortsplib) rtsp library [@aler9](https://github.com/aler9)
## Remote console

16
conf-example/rtsp.yaml Normal file
View File

@@ -0,0 +1,16 @@
# rtsp 拉流配置
global:
disableall: true # 需要转换其他协议的话需要将disableall设置为false
enableavcc: false # 如果需要转换成rtmp和flv的话需要改成true
publish:
delayclosetimeout: 2s # 无订阅者时2s后关闭拉流
preview:
enable: true
rtsp:
enable: true # 如果disableall为false的话这个可以不需要写
pull:
pullonstart:
rtsp/test: rtsp://localhost:8554/live
pullonsub: # 按需拉流
rtsp/100: rtsp://admin:admin@192.168.0.100/cam/realmonitor?channel=1&subtype=0
rtsp/101: rtsp://admin:admin@192.168.0.101/cam/realmonitor?channel=1&subtype=0

5
conf-example/说明.txt Normal file
View File

@@ -0,0 +1,5 @@
本目录下所有配置文件都是代表某些配置的例子,只是例子!!!
monibuca 不会读取这个目录下的任何文件!!!
monibuca 默认读取的是 config.yaml
请根据需要自行修改 config.yaml
当然也可以通过 -c 命令指定读取的配置文件

View File

@@ -1,23 +0,0 @@
# rtsp 拉流配置
global:
disableall: true # 需要转换其他协议的话需要将disableall设置为false
enableavcc: false # 如果需要转换成rtmp和flv的话需要改成true
delayclosetimeout: 2s # 无订阅者时2s后关闭拉流
rtsp:
enable: true # 如果disableall为false的话这个可以不需要写
pullprotocol: tcp
pull:
pullonstart:
rtsp/obs: rtsp://localhost:8554/live
# live/test1: rtsp://localhost:8554/live/rtsp
# live/test2: rtsp://localhost:8554/live/rtsp
# live/test3: rtsp://localhost:8554/live/rtsp
# live/test4: rtsp://localhost:8554/live/rtsp
# live/test5: rtsp://localhost:8554/live/rtsp
# live/test6: rtsp://localhost:8554/live/rtsp
# live/test7: rtsp://localhost:8554/live/rtsp
# live/test8: rtsp://localhost:8554/live/rtsp
# live/test9: rtsp://localhost:8554/live/rtsp
pullonsub: # 按需拉流
rtsp/100: rtsp://admin:admin@192.168.0.100/cam/realmonitor?channel=1&subtype=0
rtsp/101: rtsp://admin:admin@192.168.0.101/cam/realmonitor?channel=1&subtype=0

62
go.mod
View File

@@ -4,36 +4,35 @@ go 1.20
require (
go.uber.org/zap v1.26.0
m7s.live/engine/v4 v4.13.12
m7s.live/engine/v4 v4.14.5-0.20231128112055-268b237e35d1
m7s.live/plugin/debug/v4 v4.0.1
m7s.live/plugin/edge/v4 v4.0.6
m7s.live/plugin/fmp4/v4 v4.0.5
m7s.live/plugin/gb28181/v4 v4.4.2
m7s.live/plugin/hdl/v4 v4.1.8
m7s.live/plugin/hls/v4 v4.3.5
m7s.live/plugin/gb28181/v4 v4.4.3
m7s.live/plugin/hdl/v4 v4.1.10
m7s.live/plugin/hls/v4 v4.3.7
m7s.live/plugin/hook/v4 v4.0.2
m7s.live/plugin/jessica/v4 v4.2.1
m7s.live/plugin/logrotate/v4 v4.0.4
m7s.live/plugin/monitor/v4 v4.0.4
m7s.live/plugin/preview/v4 v4.1.2
m7s.live/plugin/record/v4 v4.4.3
m7s.live/plugin/preview/v4 v4.1.3-0.20231129031805-c8f87bd88857
m7s.live/plugin/record/v4 v4.4.5
m7s.live/plugin/room/v4 v4.0.11
m7s.live/plugin/rtmp/v4 v4.2.6
m7s.live/plugin/rtsp/v4 v4.2.10
m7s.live/plugin/rtmp/v4 v4.2.9
m7s.live/plugin/rtsp/v4 v4.3.3
m7s.live/plugin/snap/v4 v4.0.7
m7s.live/plugin/webrtc/v4 v4.2.1
m7s.live/plugin/webtransport/v4 v4.0.8
m7s.live/plugin/webrtc/v4 v4.2.3
m7s.live/plugin/webtransport/v4 v4.0.9
)
require (
github.com/Eyevinn/mp4ff v0.38.0 // indirect
github.com/abema/go-mp4 v0.13.0 // indirect
github.com/abema/go-mp4 v1.1.1 // indirect
github.com/aler9/writerseeker v1.1.0 // indirect
github.com/asticode/go-astikit v0.30.0 // indirect
github.com/asticode/go-astits v1.13.0 // indirect
github.com/bluenviron/gohlslib v1.0.0 // indirect
github.com/bluenviron/gortsplib/v3 v3.10.0 // indirect
github.com/bluenviron/mediacommon v1.3.0 // indirect
github.com/bluenviron/gortsplib/v4 v4.3.0 // indirect
github.com/bluenviron/mediacommon v1.5.0 // indirect
github.com/cnotch/ipchub v1.1.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/denisbrodbeck/machineid v1.0.1 // indirect
@@ -47,7 +46,7 @@ require (
github.com/goccy/go-json v0.10.2 // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/google/pprof v0.0.0-20230912144702-c363fe2c2ed8 // indirect
github.com/google/uuid v1.3.1 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/husanpao/ip v0.0.0-20220711082147-73160bb611a8 // indirect
github.com/logrusorgru/aurora/v4 v4.0.0 // indirect
github.com/lufia/plan9stats v0.0.0-20230326075908-cb1d2100619a // indirect
@@ -59,20 +58,23 @@ require (
github.com/onsi/ginkgo/v2 v2.12.1 // indirect
github.com/pion/datachannel v1.5.5 // indirect
github.com/pion/dtls/v2 v2.2.7 // indirect
github.com/pion/ice/v2 v2.3.11 // indirect
github.com/pion/interceptor v0.1.18 // indirect
github.com/pion/ice/v3 v3.0.2 // indirect
github.com/pion/interceptor v0.1.25 // indirect
github.com/pion/logging v0.2.2 // indirect
github.com/pion/mdns v0.0.8 // indirect
github.com/pion/mdns v0.0.9 // indirect
github.com/pion/randutil v0.1.0 // indirect
github.com/pion/rtcp v1.2.10 // indirect
github.com/pion/rtp v1.8.1 // indirect
github.com/pion/sctp v1.8.8 // indirect
github.com/pion/rtcp v1.2.12 // indirect
github.com/pion/rtp v1.8.3 // indirect
github.com/pion/sctp v1.8.9 // indirect
github.com/pion/sdp/v3 v3.0.6 // indirect
github.com/pion/srtp/v2 v2.0.17 // indirect
github.com/pion/stun v0.6.1 // indirect
github.com/pion/transport/v2 v2.2.3 // indirect
github.com/pion/turn/v2 v2.1.3 // indirect
github.com/pion/srtp/v3 v3.0.1 // indirect
github.com/pion/stun/v2 v2.0.0 // indirect
github.com/pion/transport/v2 v2.2.4 // indirect
github.com/pion/transport/v3 v3.0.1 // indirect
github.com/pion/turn/v3 v3.0.1 // indirect
github.com/pion/webrtc/v3 v3.2.20 // indirect
github.com/pion/webrtc/v4 v4.0.0-beta.7 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b // indirect
github.com/q191201771/naza v0.30.48 // indirect
@@ -92,15 +94,15 @@ require (
github.com/yapingcat/gomedia v0.0.0-20230905155010-55b9713fcec1 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.13.0 // indirect
golang.org/x/crypto v0.14.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/net v0.15.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sync v0.3.0 // indirect
golang.org/x/sys v0.12.0 // indirect
golang.org/x/term v0.12.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/term v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/tools v0.13.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
m7s.live/plugin/ps/v4 v4.1.3-0.20230912044242-63d3268148f7 // indirect
m7s.live/plugin/ps/v4 v4.1.4 // indirect
)

112
go.sum
View File

@@ -1,8 +1,8 @@
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Eyevinn/mp4ff v0.38.0 h1:9DrGxg0qDTsjJuj7MoE0a8IWZP8AnwfRd98csXgrWhs=
github.com/Eyevinn/mp4ff v0.38.0/go.mod h1:w/6GSa5ghZ1VavzJK6McQ2/flx8mKtcrKDr11SsEweA=
github.com/abema/go-mp4 v0.13.0 h1:gjEZLt7g0ePpYA5sUDrI2r8X+WuI8o+USkgG5wMgmkI=
github.com/abema/go-mp4 v0.13.0/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws=
github.com/abema/go-mp4 v1.1.1 h1:OfzkdMO6SWTBR1ltNSVwlTHatrAK9I3iYLQfkdEMMuc=
github.com/abema/go-mp4 v1.1.1/go.mod h1:vPl9t5ZK7K0x68jh12/+ECWBCXoWuIDtNgPtU2f04ws=
github.com/aler9/writerseeker v1.1.0 h1:t+Sm3tjp8scNlqyoa8obpeqwciMNOvdvsxjxEb3Sx3g=
github.com/aler9/writerseeker v1.1.0/go.mod h1:QNCcjSKnLsYoTfMmXkEEfgbz6nNXWxKSaBY+hGJGWDA=
github.com/asticode/go-astikit v0.30.0 h1:DkBkRQRIxYcknlaU7W7ksNfn4gMFsB0tqMJflxkRsZA=
@@ -11,10 +11,10 @@ github.com/asticode/go-astits v1.13.0 h1:XOgkaadfZODnyZRR5Y0/DWkA9vrkLLPLeeOvDwf
github.com/asticode/go-astits v1.13.0/go.mod h1:QSHmknZ51pf6KJdHKZHJTLlMegIrhega3LPWz3ND/iI=
github.com/bluenviron/gohlslib v1.0.0 h1:UOI7wW7EdXPnnoflPL+WRiUB+bDSyrR9AXtu029n5EY=
github.com/bluenviron/gohlslib v1.0.0/go.mod h1:fwqXogd2G/CJ/0kD6TTALmWI3KAm66nZoI+06O02YKI=
github.com/bluenviron/gortsplib/v3 v3.10.0 h1:E2ytPD1/b6JgzHYVSsyaG2xtXsvaGw9sxTdZ0Wnwsd4=
github.com/bluenviron/gortsplib/v3 v3.10.0/go.mod h1:prNU1aMVBmgmmKwlvLiEdjBbTEpTw4BRsqVcqEARgMY=
github.com/bluenviron/mediacommon v1.3.0 h1:2ttKdlvEXJSzHTd1+7x4TmJDTqEhLAAPP9QfdnYWo8U=
github.com/bluenviron/mediacommon v1.3.0/go.mod h1:/vlOVSebDwzdRtQONOKLua0fOSJg1tUDHpP+h9a0uqM=
github.com/bluenviron/gortsplib/v4 v4.3.0 h1:wYtXickYP9zkCxbBIt2WEseQPX0wROB+K0DAew4Ls7g=
github.com/bluenviron/gortsplib/v4 v4.3.0/go.mod h1:4XBcXsbK4MDFqnraexSDeKj++ZzrSd81CVplSpSNqKk=
github.com/bluenviron/mediacommon v1.5.0 h1:lS0YKNo22ZOyCsYcLh3jn3TgUALqYw0f7RVwalC09vI=
github.com/bluenviron/mediacommon v1.5.0/go.mod h1:Ij/kE1LEucSjryNBVTyPL/gBI0d6/Css3f5PyrM957w=
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
github.com/cnotch/apirouter v0.0.0-20200731232942-89e243a791f3/go.mod h1:5deJPLON/x/s2dLOQfuKS0lenhOIT4xX0pvtN/OEIuY=
@@ -85,8 +85,9 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/pprof v0.0.0-20230912144702-c363fe2c2ed8 h1:gpptm606MZYGaMHMsB4Srmb6EbW/IVHnt04rcMXnkBQ=
github.com/google/pprof v0.0.0-20230912144702-c363fe2c2ed8/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/husanpao/ip v0.0.0-20220711082147-73160bb611a8 h1:4Jk58quTZmzJcTrLlbB5L1Q6qXu49EIjCReWxcBFWKo=
@@ -153,41 +154,58 @@ github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew
github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0=
github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8=
github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s=
github.com/pion/ice/v2 v2.3.11 h1:rZjVmUwyT55cmN8ySMpL7rsS8KYsJERsrxJLLxpKhdw=
github.com/pion/ice/v2 v2.3.11/go.mod h1:hPcLC3kxMa+JGRzMHqQzjoSj3xtE9F+eoncmXLlCL4E=
github.com/pion/interceptor v0.1.18 h1:Hk26334NUQeUcJNR27YHYKT+sWNhhegQ9KFz5Nn6yMQ=
github.com/pion/ice/v3 v3.0.2 h1:dNQnKsjLvOWz+PaI4tw1VnLYTp9adihC1HIASFGajmI=
github.com/pion/ice/v3 v3.0.2/go.mod h1:q3BDzTsxbqP0ySMSHrFuw2MYGUx/AC3WQfRGC5F/0Is=
github.com/pion/interceptor v0.1.18/go.mod h1:tpvvF4cPM6NGxFA1DUMbhabzQBxdWMATDGEUYOR9x6I=
github.com/pion/interceptor v0.1.25 h1:pwY9r7P6ToQ3+IF0bajN0xmk/fNw/suTgaTdlwTDmhc=
github.com/pion/interceptor v0.1.25/go.mod h1:wkbPYAak5zKsfpVDYMtEfWEy8D4zL+rpxCxPImLOg3Y=
github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
github.com/pion/mdns v0.0.8 h1:HhicWIg7OX5PVilyBO6plhMetInbzkVJAhbdJiAeVaI=
github.com/pion/mdns v0.0.8/go.mod h1:hYE72WX8WDveIhg7fmXgMKivD3Puklk0Ymzog0lSyaI=
github.com/pion/mdns v0.0.9 h1:7Ue5KZsqq8EuqStnpPWV33vYYEH0+skdDN5L7EiEsI4=
github.com/pion/mdns v0.0.9/go.mod h1:2JA5exfxwzXiCihmxpTKgFUpiQws2MnipoPK09vecIc=
github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA=
github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8=
github.com/pion/rtcp v1.2.10 h1:nkr3uj+8Sp97zyItdN60tE/S6vk4al5CPRR6Gejsdjc=
github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I=
github.com/pion/rtcp v1.2.12 h1:bKWiX93XKgDZENEXCijvHRU/wRifm6JV5DGcH6twtSM=
github.com/pion/rtcp v1.2.12/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4=
github.com/pion/rtp v1.6.2/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko=
github.com/pion/rtp v1.8.1 h1:26OxTc6lKg/qLSGir5agLyj0QKaOv8OP5wps2SFnVNQ=
github.com/pion/rtp v1.8.1/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU=
github.com/pion/rtp v1.8.2/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU=
github.com/pion/rtp v1.8.3 h1:VEHxqzSVQxCkKDSHro5/4IUUG1ea+MFdqR2R3xSpNU8=
github.com/pion/rtp v1.8.3/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU=
github.com/pion/sctp v1.8.5/go.mod h1:SUFFfDpViyKejTAdwD1d/HQsCu+V/40cCs2nZIvC3s0=
github.com/pion/sctp v1.8.8 h1:5EdnnKI4gpyR1a1TwbiS/wxEgcUWBHsc7ILAjARJB+U=
github.com/pion/sctp v1.8.8/go.mod h1:igF9nZBrjh5AtmKc7U30jXltsFHicFCXSmWA2GWRaWs=
github.com/pion/sctp v1.8.9 h1:TP5ZVxV5J7rz7uZmbyvnUvsn7EJ2x/5q9uhsTtXbI3g=
github.com/pion/sctp v1.8.9/go.mod h1:cMLT45jqw3+jiJCrtHVwfQLnfR0MGZ4rgOJwUOIqLkI=
github.com/pion/sdp/v3 v3.0.6 h1:WuDLhtuFUUVpTfus9ILC4HRyHsW6TdugjEX/QY9OiUw=
github.com/pion/sdp/v3 v3.0.6/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw=
github.com/pion/srtp/v2 v2.0.17 h1:ECuOk+7uIpY6HUlTb0nXhfvu4REG2hjtC4ronYFCZE4=
github.com/pion/srtp/v2 v2.0.17/go.mod h1:y5WSHcJY4YfNB/5r7ca5YjHeIr1H3LM1rKArGGs8jMc=
github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4=
github.com/pion/srtp/v3 v3.0.1 h1:AkIQRIZ+3tAOJMQ7G301xtrD1vekQbNeRO7eY1K8ZHk=
github.com/pion/srtp/v3 v3.0.1/go.mod h1:3R3a1qIOIxBkVTLGFjafKK6/fJoTdQDhcC67HOyMbJ8=
github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8=
github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0=
github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ=
github.com/pion/transport v0.14.1 h1:XSM6olwW+o8J4SCmOBb/BpwZypkHeyM0PGFCxNQBr40=
github.com/pion/transport v0.14.1/go.mod h1:4tGmbk00NeYA3rUa9+n+dzCCoKkcy3YlYb99Jn2fNnI=
github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
github.com/pion/transport/v2 v2.2.2/go.mod h1:OJg3ojoBJopjEeECq2yJdXH9YVrUJ1uQ++NjXLOUorc=
github.com/pion/transport/v2 v2.2.3 h1:XcOE3/x41HOSKbl1BfyY1TF1dERx7lVvlMCbXU7kfvA=
github.com/pion/transport/v2 v2.2.3/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
github.com/pion/turn/v2 v2.1.3 h1:pYxTVWG2gpC97opdRc5IGsQ1lJ9O/IlNhkzj7MMrGAA=
github.com/pion/transport/v2 v2.2.4 h1:41JJK6DZQYSeVLxILA2+F4ZkKb4Xd/tFJZRFZQ9QAlo=
github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM=
github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0=
github.com/pion/turn/v2 v2.1.3/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY=
github.com/pion/turn/v3 v3.0.1 h1:wLi7BTQr6/Q20R0vt/lHbjv6y4GChFtC33nkYbasoT8=
github.com/pion/turn/v3 v3.0.1/go.mod h1:MrJDKgqryDyWy1/4NT9TWfXWGMC7UHT6pJIv1+gMeNE=
github.com/pion/webrtc/v3 v3.2.20 h1:BQJiXQsJq9LgLp3op7rLy1y8d2WD+LtiS9cpY0uQ22A=
github.com/pion/webrtc/v3 v3.2.20/go.mod h1:vVURQTBOG5BpWKOJz3nlr23NfTDeyKVmubRNqzQp+Tg=
github.com/pion/webrtc/v4 v4.0.0-beta.7 h1:OGCl69njLUKzT0ozJEon18W1LqH0GtuxG9Qx+qtxBdg=
github.com/pion/webrtc/v4 v4.0.0-beta.7/go.mod h1:/zWz+1e1qrjaIKYZG/mOfPrntiHOhnd3vGz2Fdo85Ys=
github.com/pixelbender/go-sdp v1.1.0/go.mod h1:6IBlz9+BrUHoFTea7gcp4S54khtOhjCW/nVDLhmZBAs=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/profile v1.4.0/go.mod h1:NWz/XGvpEW1FyYQ7fCx4dqYBLlfTcE+A9FLAkNKqjFE=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -266,8 +284,9 @@ golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -293,8 +312,9 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -338,8 +358,9 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -350,8 +371,9 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -406,20 +428,20 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
m7s.live/engine/v4 v4.13.12 h1:GYdIPlvwkS57DbZGvQxgMJIKL+hyYZpOv/8qNjGbY6E=
m7s.live/engine/v4 v4.13.12/go.mod h1:cRR/WOZbPSAQfYxIHuCkj1YMg+C54CYlFpOJ88q+OG4=
m7s.live/engine/v4 v4.14.4 h1:P8XTYDyYsMgHNMW0smBauV5WuJ8TXyorJezrkapkm/8=
m7s.live/engine/v4 v4.14.4/go.mod h1:cRR/WOZbPSAQfYxIHuCkj1YMg+C54CYlFpOJ88q+OG4=
m7s.live/engine/v4 v4.14.5-0.20231128112055-268b237e35d1 h1:wicpZdNSk3MdgWx4zFYA60DucElY6EwlbJuZIzs5M0k=
m7s.live/engine/v4 v4.14.5-0.20231128112055-268b237e35d1/go.mod h1:cRR/WOZbPSAQfYxIHuCkj1YMg+C54CYlFpOJ88q+OG4=
m7s.live/plugin/debug/v4 v4.0.1 h1:sX0UADsiikwSol8qx+8aQzGeaFa8yJFa/cUKpBs5Lzw=
m7s.live/plugin/debug/v4 v4.0.1/go.mod h1:A/C1ViacCOK7EPeeCfiwlUrC2TUtRdEqzrR0Yd9b1KQ=
m7s.live/plugin/edge/v4 v4.0.6 h1:dAxS6cvmWV+pPXCgdu0phoAwH2abjhlKMGfysyxHBNw=
m7s.live/plugin/edge/v4 v4.0.6/go.mod h1:AWeJV1Nu2UWsEdlcCATlQW+bz6Pz/3A11AZG9Z4hIc0=
m7s.live/plugin/fmp4/v4 v4.0.5 h1:0madI/TKvrLkYVAKuPK1HBvbVf0RJg0g2WruET3S+9c=
m7s.live/plugin/fmp4/v4 v4.0.5/go.mod h1:4ShxA9Ud2LeYZ/xQaPTWEVfjpK844ijoXxLqhCA607A=
m7s.live/plugin/gb28181/v4 v4.4.2 h1:KiFwisudUZNe+cuXkTvM6nWi5Wl40gmIn1D+atjKzHo=
m7s.live/plugin/gb28181/v4 v4.4.2/go.mod h1:j60aMyOqmBSqSR+QAP/5X4TgdP0IIXkSSwkZs53HVIE=
m7s.live/plugin/hdl/v4 v4.1.8 h1:n7o3bu69UCHjzs8ZXHbB+qWo+AVyIY8T8cAocL9kqag=
m7s.live/plugin/hdl/v4 v4.1.8/go.mod h1:Qyga5ZxL83+1uwT+1JBHhTpgepM4nj7XbWF/mMm2P/o=
m7s.live/plugin/hls/v4 v4.3.5 h1:mnJBd57OTeaOeihN3nKhSN2FA3EsvaItqayXjagJnY0=
m7s.live/plugin/hls/v4 v4.3.5/go.mod h1:ALhv4u5AEBT/QNmf5bAebUm0Kxfa3T6AI04XcaJBm4c=
m7s.live/plugin/gb28181/v4 v4.4.3 h1:Vrgtgq8bstX2R7EtuSjiqEHjwaP74HpRanvhNsr2kEk=
m7s.live/plugin/gb28181/v4 v4.4.3/go.mod h1:mK5embLQwDULFJjA7jBls1Cwvow98lTWS6n/uZ7Ampk=
m7s.live/plugin/hdl/v4 v4.1.10 h1:6/3aCaVvqpc4m/oyhW1jgQeYfPHINiKGAP+FGptVNqU=
m7s.live/plugin/hdl/v4 v4.1.10/go.mod h1:SzMML8acGj8QD5AwihVTnTuCAdKCOpdf+q/CYl/3/Hc=
m7s.live/plugin/hls/v4 v4.3.7 h1:cSXSAsplk1vhqnhF0eTykQV9f66FGsGvjvGDJJoxW0Y=
m7s.live/plugin/hls/v4 v4.3.7/go.mod h1:ol/+hCmdqip2Ns1zIDXHWoDD7xk5Dp76AhqlIwrbRSc=
m7s.live/plugin/hook/v4 v4.0.2 h1:fKwsx7gDAzfKfCz0C+knoY4wg/qnlQloM996l3jUWNc=
m7s.live/plugin/hook/v4 v4.0.2/go.mod h1:zoyGSwIIdt4NGFdqrKHLFCwwMk4oAOF+dlvSV6cizGU=
m7s.live/plugin/jessica/v4 v4.2.1 h1:GbQ8V2ElHT7Q/0y1cyXCzw/DvTnqkpP1kCOpVd+0d6Y=
@@ -430,19 +452,23 @@ m7s.live/plugin/monitor/v4 v4.0.4 h1:vJ/gZctUej9s5ukjsNXDvl6JWqK5I+7L6W0REXR2Xpg
m7s.live/plugin/monitor/v4 v4.0.4/go.mod h1:wYcjvXM03RK00DGA/R7zfiENNT7jDFQhp0rEBvO1mTw=
m7s.live/plugin/preview/v4 v4.1.2 h1:ENjeg36xWiPqI2FM0lJzs0t8gyeomEvUFtT5ygu+BrQ=
m7s.live/plugin/preview/v4 v4.1.2/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/ps/v4 v4.1.3-0.20230912044242-63d3268148f7 h1:7Xrg8ecbWblg6H5gE3bim3eQEurwJDOUAfICKhWmuPI=
m7s.live/plugin/ps/v4 v4.1.3-0.20230912044242-63d3268148f7/go.mod h1:e9aZeeidKnAp5THZCIW5teOT9jze//GnZIKz55KgN9U=
m7s.live/plugin/record/v4 v4.4.3 h1:sZag0Jv9ySXxu0Z3+Z1EmQi1fK16ZtYREsg2jOO4W7U=
m7s.live/plugin/record/v4 v4.4.3/go.mod h1:lwVE6xn4sGQBLOWgshw3L1fa5zyEM7NlmQ8otTQGXUY=
m7s.live/plugin/preview/v4 v4.1.3-0.20231128092612-100a59c34dc8 h1:hROw8VtCUtnrCRPux/DUbV0Gq11lKeF+S0Dw1hVYCEY=
m7s.live/plugin/preview/v4 v4.1.3-0.20231128092612-100a59c34dc8/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/preview/v4 v4.1.3-0.20231129031805-c8f87bd88857 h1:jCVRQTqqKDMu/dot01TNc3Rv5MF62B55H4+JkHyQvNY=
m7s.live/plugin/preview/v4 v4.1.3-0.20231129031805-c8f87bd88857/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/ps/v4 v4.1.4 h1:Hycrjyk6uJRxrGfytSoIdstAotGx69L5jumFVr9yTV4=
m7s.live/plugin/ps/v4 v4.1.4/go.mod h1:RAb507iNmPG43I5kUA6ewF1fTRHDRsKbIVkIdLdKeeI=
m7s.live/plugin/record/v4 v4.4.5 h1:v5xjJiC1inpsqIUeNmI8QWOCN0bsTe1x6IlO4z9blzg=
m7s.live/plugin/record/v4 v4.4.5/go.mod h1:lwVE6xn4sGQBLOWgshw3L1fa5zyEM7NlmQ8otTQGXUY=
m7s.live/plugin/room/v4 v4.0.11 h1:a4XOzHmsTrvi3N809IMaFGpimiJUMz8D9+BRnBk44Oc=
m7s.live/plugin/room/v4 v4.0.11/go.mod h1:bGNV2Me/k2KBfbO+fiUdC+HKJBE2wS84HczzSHfrSAI=
m7s.live/plugin/rtmp/v4 v4.2.6 h1:PALpu9P/XYVNz1UQDRCf6t34gkx6DfBMnTWL1syD4X0=
m7s.live/plugin/rtmp/v4 v4.2.6/go.mod h1:+RzS8WC4AhPEb+CD9T4H+5CoApQCw2X3tNjEaqBVnwk=
m7s.live/plugin/rtsp/v4 v4.2.10 h1:L8I/Zql69eejwE5TPskkTsqsFC++2vAc5HqezSCN9a0=
m7s.live/plugin/rtsp/v4 v4.2.10/go.mod h1:JADpLK19CayyyDA4O2nPIKC+ZIV7YBnd8b3MN5lnoUc=
m7s.live/plugin/rtmp/v4 v4.2.9 h1:2wIFZ3KHvnI4yJ+ahmknnvfptOJGLEPdXALRLNtGdLA=
m7s.live/plugin/rtmp/v4 v4.2.9/go.mod h1:UqI1l1+3Y2zg2oOUkfVJ719hcv10bMYVAlg5e+gqy2E=
m7s.live/plugin/rtsp/v4 v4.3.3 h1:SVvQT7mPdy1uLKwCYtPfWTzAdei0h1Q4yKlgJ2Egsz4=
m7s.live/plugin/rtsp/v4 v4.3.3/go.mod h1:s6tETQjq/peipACzpkPjXsZfHw+Vq7D1lyHnqSl8DRs=
m7s.live/plugin/snap/v4 v4.0.7 h1:9otl/K5Iq+wlnrcTEIOnBXGarNXd+Fl4r+684Uz+V+k=
m7s.live/plugin/snap/v4 v4.0.7/go.mod h1:XHggonZ0lIKEX/OP2rXjV2mPpG4urmvMT3foIaFRsus=
m7s.live/plugin/webrtc/v4 v4.2.1 h1:7NPeQpGBbZFUUSbrrwPSzUslgKVHcZXXsv34efQza+Q=
m7s.live/plugin/webrtc/v4 v4.2.1/go.mod h1:SsWg280LiY41eV+43CVE+0cGX6tWLhi8ghj5y3uN10c=
m7s.live/plugin/webtransport/v4 v4.0.8 h1:tLay92tBiCy5SIRNZGEk8NYRlWD4pbipH+W60QUjws8=
m7s.live/plugin/webtransport/v4 v4.0.8/go.mod h1:RzgkVZEm3ceneWMeTnzixZBpgOfB4nQAvn3K8AdrHCU=
m7s.live/plugin/webrtc/v4 v4.2.3 h1:Kj2IhDqvbN0IfQtnvL9vqKTM6QmFt05h5QDdYvfB9lM=
m7s.live/plugin/webrtc/v4 v4.2.3/go.mod h1:GHnmheJotswzQAPzMrQ7mjImzTECLCSFfWWgavwbkng=
m7s.live/plugin/webtransport/v4 v4.0.9 h1:G1HUDgi1MvdOE08XIES5bI/cRTy7LrtCU/StCql+f6o=
m7s.live/plugin/webtransport/v4 v4.0.9/go.mod h1:OBTNwQ4TLMaWV4C6Q2un1YKEJaMwk26qdgfI3hX1+qw=

View File

@@ -4,7 +4,7 @@ archives:
files:
- config.yaml
- favicon.ico
- conf/*
- conf-example/*
builds:
- id: "with-debug"
env: [CGO_ENABLED=0]

View File

@@ -55,7 +55,6 @@ import (
_ "m7s.live/plugin/snap/v4"
_ "m7s.live/plugin/webrtc/v4"
_ "m7s.live/plugin/webtransport/v4"
_ "m7s.live/plugin/edge/v4"
_ "m7s.live/plugin/fmp4/v4"
_ "m7s.live/plugin/monitor/v4"
)