From e886583f855f71240439293247d39cba05e6442a Mon Sep 17 00:00:00 2001 From: qydysky Date: Tue, 8 Jun 2021 16:52:22 +0800 Subject: [PATCH] =?utf8?q?hls=E5=9D=87=E8=A1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- Reply/F.go | 22 +++++++++++++++++++++- demo/config/config_K_v.json | 3 ++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d1d53b9..3965296 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ golang go version go1.15 linux/amd64 - [x] 弹幕自动重连(30s) - [x] 直播流开播自动下载 - [x] 直播流断流再保存 +- [x] 直播hls流均衡负载 - [x] 命令行支持房间切换、弹幕发送、启停录制 - [x] GTK信息窗支持房间切换、弹幕格式化发送、时长统计 - [x] GTK弹幕窗支持自定义人/事件消息停留 @@ -126,7 +127,7 @@ ass编码GB18030支持中文 在`demo/config/config_K_v.json`中可找到配置项,0:随机可用端口 >0:固定可用端口 <0:禁用服务。 ``` - "直播保存位置Web服务":0, + "直播Web服务口":0, ``` 开启之后,启动会显示服务地址,在局域网内打开网址可以取得所有直播流的串流地址 diff --git a/Reply/F.go b/Reply/F.go index 311116f..206cc51 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -253,7 +253,7 @@ type Savestream struct { flv_front []byte//flv头及首tag flv_stream *msgq.Msgq//发送给客户的flv流关键帧间隔片 - m4s_hls int + hls_banlance_host bool//使用均衡hls服务器 wait *s.Signal cancel *s.Signal @@ -304,6 +304,9 @@ func init(){ savestream.base_path = path+"/" } } + if v, ok := c.K_v.LoadV(`直播hls流均衡`).(bool);ok { + savestream.hls_banlance_host = v + } } //已go func形式调用,将会获取直播流 @@ -1147,6 +1150,23 @@ func Savestreamf(){ continue } + //random host load balance + if savestream.hls_banlance_host { + Host_list := []string{} + for _,v := range c.Live { + url_struct,e := url.Parse(v) + if e != nil {continue} + Host_list = append(Host_list, url_struct.Hostname()) + } + random := int(time.Now().Unix()) + for i:=0;i= c.Live_qn { expires = int64(exp) diff --git a/demo/config/config_K_v.json b/demo/config/config_K_v.json index daced4c..05642cd 100644 --- a/demo/config/config_K_v.json +++ b/demo/config/config_K_v.json @@ -48,7 +48,8 @@ "直播流类型-help": "flv or hls", "直播流类型": "hls", "直播流保存位置": "./live", - "直播流缓冲": 20, + "直播hls流均衡-help":"true:使用所有hls服务器", + "直播hls流均衡": true, "ass-help": "只有保存直播流时才考虑生成ass,ass编码默认GB18030(可选utf-8)", "生成Ass弹幕": true, "Ass编码": "GB18030", -- 2.39.2