update readme

This commit is contained in:
xugo
2025-01-24 02:41:31 +08:00
parent eebb9f5bd1
commit 5be478af7c
7 changed files with 21 additions and 6 deletions
+12 -2
View File
@@ -2,12 +2,18 @@
Web Video Platform 是一个基于 GB/T28181-2022 标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持 NAT 穿透,支持海康、大华、宇视等品牌的 IPC、NVR 接入。支持国标级联。
## 在线演示平台
+ [演示平台线路 1 (推荐),点击访问](http://gowvp.golang.space:15123/)
+ [演示平台线路 2 (3MB 带宽手下留情)](http://wvp.golang.space/)
![](./docs/demo/home.webp)
![](./docs/demo/play.webp)
## 应用场景:
+ 支持浏览器无插件播放摄像头视频。
+ 支持国标设备(摄像机、平台、NVR等)设备接入
@@ -15,6 +21,7 @@ Web Video Platform 是一个基于 GB/T28181-2022 标准实现的开箱即用的
+ 支持国标级联。多平台级联。跨网视频预览。
+ 支持跨网网闸平台互联。
## 快速开始
待 1.0 版本发布才提供安装包,如果你是 Go 语言开发者并熟悉 docker,可以继续~~~
@@ -123,7 +130,8 @@ ZLM使用文档 [github.com/ZLMediaKit/ZLMediaKit](https://github.com/ZLMediaKit
在使用本项目代码时,也应该在授权协议中同时表明本项目依赖的第三方库的协议
## GoWVP, GB/T28181 交流群
![](./wechat.jpg)
<img src="./wechat.jpg" alt="wechat" width="240"/>
## QA
@@ -149,7 +157,9 @@ ZLM使用文档 [github.com/ZLMediaKit/ZLMediaKit](https://github.com/ZLMediaKit
> 有没有使用资料?
开发中...
[RTMP 推拉流规则](https://juejin.cn/post/7463046634558718004)
码字中...
## 开源库
+1 -1
View File
@@ -22,7 +22,7 @@ version = 1
IP = "127.0.0.1"
HTTPPort = 8080
Secret = "s1kPE7bzqKeHUaVcp8dCA0jeB8yxyFq4"
WebHookIP = "192.168.10.25"
WebHookIP = "192.168.10.28"
RTPPortRange = "20000,20500"
[Log]
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

+6 -3
View File
@@ -92,11 +92,14 @@ func setupRouter(r *gin.Engine, uc *Usecase) {
}
stream := push.App + "/" + push.Stream
host := c.Request.Host
if l := strings.Split(c.Request.Host, ":"); len(l) == 2 {
host = l[0]
}
var session string
if !push.IsAuthDisabled && push.Session != "" {
session = "?session=" + push.Session
}
return &playOutput{
App: push.App,
@@ -106,14 +109,14 @@ func setupRouter(r *gin.Engine, uc *Usecase) {
Label: "默认线路",
WSFLV: fmt.Sprintf("ws://%s:%d/%s.live.flv", host, svr.Ports.WsFLV, stream),
HTTPFLV: fmt.Sprintf("http://%s:%d/%s.live.flv", host, svr.Ports.FLV, stream),
RTMP: fmt.Sprintf("rtmp://%s:%d/%s", host, svr.Ports.RTMP, stream),
RTMP: fmt.Sprintf("rtmp://%s:%d/%s", host, svr.Ports.RTMP, stream) + session,
RTSP: fmt.Sprintf("rtsp://%s:%d/%s", host, svr.Ports.RTSP, stream),
},
{
Label: "SSL 线路",
WSFLV: fmt.Sprintf("wss://%s:%d/%s.live.flv", host, svr.Ports.WsFLVs, stream),
HTTPFLV: fmt.Sprintf("https://%s:%d/%s.live.flv", host, svr.Ports.FLVs, stream),
RTMP: fmt.Sprintf("rtmps://%s:%d/%s", host, svr.Ports.RTMPs, stream),
RTMP: fmt.Sprintf("rtmps://%s:%d/%s", host, svr.Ports.RTMPs, stream) + session,
RTSP: fmt.Sprintf("rtsps://%s:%d/%s", host, svr.Ports.RTSPs, stream),
},
},
+2
View File
@@ -91,6 +91,7 @@ func (w WebHookAPI) onPlay(c *gin.Context, in *onPublishInput) (DefaultOutput, e
case "rtmp":
params, err := url.ParseQuery(in.Params)
if err != nil {
slog.Info("onPlay 鉴权失败", "err", err)
return DefaultOutput{Code: 1, Msg: err.Error()}, nil
}
session := params.Get("session")
@@ -99,6 +100,7 @@ func (w WebHookAPI) onPlay(c *gin.Context, in *onPublishInput) (DefaultOutput, e
Stream: in.Stream,
Session: session,
}); err != nil {
slog.Info("onPlay 鉴权失败", "err", err)
return DefaultOutput{Code: 1, Msg: err.Error()}, nil
}
case "rtsp":
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 147 KiB