Compare commits

...

12 Commits

Author SHA1 Message Date
dexter
7a0964b501 Merge branch 'v4' of github.com:langhuihui/monibuca into v4 2022-07-10 20:47:40 +08:00
dexter
67ad3e669d 更新gb插件以及远程控制台显示数据部分 2022-07-10 20:47:11 +08:00
dexter
6c78c2f456 Merge pull request #60 from dwdcth/v4
保存发布信息
2022-07-06 15:39:59 +08:00
banshan
16cf7725f3 保存发布信息 2022-07-06 15:35:26 +08:00
dexter
9d08fa47b3 修复startTime经过json序列化后变成负数的问题 2022-07-06 10:13:02 +08:00
dexter
9b6e9bfbec Merge pull request #59 from dwdcth/v4
修复goreleaser 发布时编译错误
2022-07-06 10:11:32 +08:00
banshan
a18fc77b8b Update go.yml 2022-07-06 09:39:46 +08:00
dexter
edd7a6f047 消除一个hls的内存泄露,修复gb插件的一个bug 2022-07-05 10:24:45 +08:00
dexter
9ec70f0454 升级engine 2022-06-29 14:23:04 +08:00
dexter
6ca479371e 修复若干bug 2022-06-27 00:41:32 +08:00
dexter
f65bd3a760 rtp相关追帧完成,修复音频数据写入bug 2022-06-25 20:53:25 +08:00
dexter
91a9171c5c preview插件加入索引页面,engine的api/plugins输出完整配置信息 2022-06-23 00:47:17 +08:00
5 changed files with 40 additions and 118 deletions

View File

@@ -33,7 +33,7 @@ jobs:
uses: goreleaser/goreleaser-action@v2
if: success() && startsWith(github.ref, 'refs/tags/')
with:
version: latest
version: v1.8.3
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -56,6 +56,11 @@ jobs:
cp ../dist/m7s_${{ env.version }}_darwin_arm64.tar.gz apps/m7s-website/src/public/bin/m7s_darwin_arm64.tar.gz
cp ../dist/m7s_${{ env.version }}_linux_amd64.tar.gz apps/m7s-website/src/public/bin/m7s_linux_amd64.tar.gz
cp ../dist/m7s_${{ env.version }}_linux_arm64.tar.gz apps/m7s-website/src/public/bin/m7s_linux_arm64.tar.gz
releaseinfo=`curl -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ github.repository }}/releases/latest`
body=`echo $releaseinfo | jq ".body" | sed -e 's/^"//' -e 's/"$//'`
name=`echo $releaseinfo | jq ".name" | sed -e 's/^"//' -e 's/"$//'`
touch apps/m7s-website/src/release.txt
echo -e "# $name\n$body" | cat - apps/m7s-website/src/release.txt > temp && mv temp apps/m7s-website/src/release.txt
git config --global user.name 'langhuihui'
git config --global user.email '178529795@qq.com'
git add -A

View File

@@ -1,92 +0,0 @@
[Engine]
EnableAudio = true
EnableVideo = true
# 发布流默认过期时间单位秒
PublishTimeout = 60
# 自动关闭触发后延迟的秒数(期间内如果有新的订阅则取消触发关闭)
AutoCloseDelay = 10
# RTP包乱序重排
RTPReorder = false
[Summary]
# 1秒中采样一次
SampleRate = 1
[RTMP]
ListenAddr = ":1935"
[GateWay]
ListenAddr = ":8081"
ListenAddrTLS = ":8082"
CertFile = "server.pem"
KeyFile = "server.key"
[Jessica]
#ListenAddr = ":8081"
#ListenAddrTLS = ":8083"
#CertFile = "xxx.cert"
#KeyFile = "xxx.key"
[LogRotate]
# 日志存储目录相对或绝对
Path = "logs"
# 日志是否按大小分割0表示不按大小分割非零代表按该大小字节进行分割
Size = 0
Days = 1
# 按照go layout格式化默认按照小时
Formatter = "2006-01-02T15"
# [FFMPEG]
[HLS]
# 是否开启写磁盘开启后侦测到发布流就会开始写TS文件
EnableWrite = false
# 是否打开内存模式在内存中保留TS数据方便直接读取
EnableMemory = false
# 分片大小 单位秒
Fragment = 10
# 窗口数里代表一个m3u8文件里面有几个ts
Window = 2
# ts文件存放目录m3u8会存放在上一级
Path = "resource"
[HDL]
#ListenAddr = ":2020"
#ListenAddrTLS = ":2021"
#CertFile = "xxx.cert"
#KeyFile = "xxx.key"
#Reconnect = true
[HDL.AutoPullList]
# "live/hdl" = "http://flv.bdplay.nodemedia.cn/live/bbb.flv"
[TS]
# ts存放目录
Path = "resource"
[Record]
Path = "resource"
# 自动录制功能
AutoRecord = false
[RTSP]
# 端口接收推流
ListenAddr = ":554"
Reconnect = true
#启动后自动拉流,可以配置多个
[RTSP.AutoPullList]
# "live/rtsp" = "rtsp://114.116.215.52:38558/sub/3"
"live/rtsp" = "rtsp://admin:MOMA2021@47.94.226.17/Streaming/Channels/201?transportmode=unicast"
# "live/rtc" = "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4"
# "live/rtsp" = "rtsp://admin:123456@42.193.7.166:9018/video1"
[WebRTC]
# 端口范围不配置的话是自动分配
# PortMin = 30000
# PortMax = 40000
# 公网访问必须配置PublicIP否则无法建立连接
# PublicIP = ["192.168.1.120"]
# WebRTC 推流时控制GOP大小单位毫秒
# PLI = 2000
[GB28181]
Serial = "34020000002000000001"
Realm = "3402000000"
Expires = 3600
# 媒体端口
# MediaPort = 58200
# 开启TCP拉流默认关闭
# TCP = true
# TCP端口数量超过一个的话将会每个设备轮流使用从MediaPort往下递增
# TCPMediaPortNum = 1
ListenAddr = "192.168.1.120:5060"
# 自动停止发布当订阅者数量将为0时延迟N秒自动断开,-1代表不断开
AutoCloseAfter = -1
# 自动拉流,如果开启,则拿到设备注册信息后,就从设备拉流
AutoInvite = true

15
go.mod
View File

@@ -3,21 +3,21 @@ module monibuca
go 1.18
require (
m7s.live/engine/v4 v4.3.0
m7s.live/engine/v4 v4.5.1
m7s.live/plugin/debug/v4 v4.0.0-20220506113031-34f3a736ceb2
m7s.live/plugin/gb28181/v4 v4.0.0-20220607131724-e110acfb56d3
m7s.live/plugin/gb28181/v4 v4.0.0-20220710074849-8f2a90e8ac40
m7s.live/plugin/hdl/v4 v4.0.0-20220619154106-b109dd48a6e4
m7s.live/plugin/hls/v4 v4.0.0-20220619163635-447976e65ab9
m7s.live/plugin/hls/v4 v4.0.0-20220701023227-8b8d68de154f
m7s.live/plugin/hook/v4 v4.0.0-20220510140048-d4f76fd1c415
m7s.live/plugin/jessica/v4 v4.0.0-20220619154153-bcd0a5960ac1
m7s.live/plugin/logrotate/v4 v4.0.0-20220506113619-1a557d4707a5
m7s.live/plugin/preview/v4 v4.0.0-20220612074126-ea770517a67e
m7s.live/plugin/record/v4 v4.0.0-20220620045616-933fb3cceda5
m7s.live/plugin/preview/v4 v4.0.0-20220710064653-1bfc340193c8
m7s.live/plugin/record/v4 v4.0.0-20220625032502-232d974a1c93
m7s.live/plugin/room/v4 v4.0.0-20220512035851-f980d4a7f6a0
m7s.live/plugin/rtmp/v4 v4.0.0-20220619154232-ab31af1fb7d6
m7s.live/plugin/rtsp/v4 v4.0.0-20220619154428-2c1d908d7e68
m7s.live/plugin/rtsp/v4 v4.0.0-20220702171423-ae37279dd194
m7s.live/plugin/snap/v4 v4.0.0-20220619154320-97a4991e775b
m7s.live/plugin/webrtc/v4 v4.0.0-20220619154404-6a5d740a21de
m7s.live/plugin/webrtc/v4 v4.0.0-20220625121305-db54d6ee4d17
m7s.live/plugin/webtransport/v4 v4.0.0-20220619154419-bf138bc5958b
)
@@ -49,7 +49,6 @@ require (
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
github.com/nxadm/tail v1.4.8 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
github.com/onsi/gomega v1.19.0 // indirect
github.com/pion/datachannel v1.5.2 // indirect
github.com/pion/dtls/v2 v2.1.5 // indirect
github.com/pion/ice/v2 v2.2.6 // indirect

31
go.sum
View File

@@ -179,7 +179,6 @@ github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuK
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw=
github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E=
github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ=
@@ -496,38 +495,36 @@ grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJd
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
m7s.live/engine/v4 v4.3.0 h1:z2R8ZmmFjhtSFYu4Y1Gzmfvx+0y2ynJqL89xT1a7Kcw=
m7s.live/engine/v4 v4.3.0/go.mod h1:rliHP5yJnSyr40ha6q8OhUResRn8fo26TxmmBbR2X4M=
m7s.live/engine/v4 v4.5.1 h1:TKXIgxrZ9YPT6ArZUQ8iByn9Y3yUbiXtIpM8CnceeBY=
m7s.live/engine/v4 v4.5.1/go.mod h1:uzpGiVnIcuoXehpvqOj9iTVxnyf7RZQZ/Ikiwyjs01E=
m7s.live/plugin/debug/v4 v4.0.0-20220506113031-34f3a736ceb2 h1:0QWJvozTHy7m+G/lOIGiejQ9okFIDjwzVsgXe6ZaJg8=
m7s.live/plugin/debug/v4 v4.0.0-20220506113031-34f3a736ceb2/go.mod h1:A/C1ViacCOK7EPeeCfiwlUrC2TUtRdEqzrR0Yd9b1KQ=
m7s.live/plugin/gb28181/v4 v4.0.0-20220607131724-e110acfb56d3 h1:zhDjSjstW82eRaihAJdNwgat5hMhRD39GbyWf2Kg8+I=
m7s.live/plugin/gb28181/v4 v4.0.0-20220607131724-e110acfb56d3/go.mod h1:cEVPp9jSsN7u85Km8ztdG54n2Sj4LyxvIp3SJIYPByE=
m7s.live/plugin/gb28181/v4 v4.0.0-20220710074849-8f2a90e8ac40 h1:YAaLlBzUhDVXptjtDK33YyFBXiD7az99mMXkFI8GMBM=
m7s.live/plugin/gb28181/v4 v4.0.0-20220710074849-8f2a90e8ac40/go.mod h1:ZF35yYBY2wPBVtZv3Gwd+j5Eg5wznRTwNHCazTM6UAQ=
m7s.live/plugin/hdl/v4 v4.0.0-20220619154106-b109dd48a6e4 h1:l9y3NU/mD2lWnBop3sq1mGbGcQhzutxIZ6++wWIOlUM=
m7s.live/plugin/hdl/v4 v4.0.0-20220619154106-b109dd48a6e4/go.mod h1:oYox1NW5lUlwWNuAqqmgY7csuP8Hyd8TlIGuF7DoxIk=
m7s.live/plugin/hls/v4 v4.0.0-20220619163635-447976e65ab9 h1:EcB8awppfwza+s4ECjUr3xLTtl9BgJcZ12EgfE/L2YA=
m7s.live/plugin/hls/v4 v4.0.0-20220619163635-447976e65ab9/go.mod h1:Qn4dDz5xlyBJwO+eZ3w8CUQ8Hl6KN1nmv0a3IsOjJvw=
m7s.live/plugin/hls/v4 v4.0.0-20220701023227-8b8d68de154f h1:ZSBTBj/LkoVaGWwfgV/qFMTj/UR/iyyAuIWrDjYm47U=
m7s.live/plugin/hls/v4 v4.0.0-20220701023227-8b8d68de154f/go.mod h1:Qn4dDz5xlyBJwO+eZ3w8CUQ8Hl6KN1nmv0a3IsOjJvw=
m7s.live/plugin/hook/v4 v4.0.0-20220510140048-d4f76fd1c415 h1:ByaKrp8iWIDhASzxxCsJRBx0Cyw1P466KLgvSiMSix4=
m7s.live/plugin/hook/v4 v4.0.0-20220510140048-d4f76fd1c415/go.mod h1:ky3FOzCMKSDIiosPOw3wrKrQLM3YERSe5YrQZToJh/I=
m7s.live/plugin/jessica/v4 v4.0.0-20220619154153-bcd0a5960ac1 h1:7muSZHyx6EQSzO8svuZKlFNVk3OrOdra+e8proeGAUY=
m7s.live/plugin/jessica/v4 v4.0.0-20220619154153-bcd0a5960ac1/go.mod h1:mJCONeOUeIPPA7Pfgge844l65KzHXa+QwE+AJ64Cf+4=
m7s.live/plugin/logrotate/v4 v4.0.0-20220506113619-1a557d4707a5 h1:XkkHG9sYk45GXVxZXDbY7WgtwoiXfJ8Mf58CPT5Bzss=
m7s.live/plugin/logrotate/v4 v4.0.0-20220506113619-1a557d4707a5/go.mod h1:a8hIV59GjpQDE+Ip790CU7yOHaG4+Iweci0sLvo43FU=
m7s.live/plugin/preview/v4 v4.0.0-20220612074126-ea770517a67e h1:S8hrME0L3QWwmJ4i6iEvGSqXCGpgWHgg42N0M1Pq3N0=
m7s.live/plugin/preview/v4 v4.0.0-20220612074126-ea770517a67e/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/record/v4 v4.0.0-20220620045616-933fb3cceda5 h1:Lv3elhs9rW885D3TyfEz58WC3g14S2riTtowFMPOAv4=
m7s.live/plugin/record/v4 v4.0.0-20220620045616-933fb3cceda5/go.mod h1:pOe8VNiXm/m1SiJSO16iFZhqrWJeb1xcV3s9qv5v6eo=
m7s.live/plugin/preview/v4 v4.0.0-20220710064653-1bfc340193c8 h1:RjeD7x5PpWQfSuygquGgRR0S5/ycgQ4VI9pzJpHbHIc=
m7s.live/plugin/preview/v4 v4.0.0-20220710064653-1bfc340193c8/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/record/v4 v4.0.0-20220625032502-232d974a1c93 h1:4voF7d0cDsSm0QV7CpJuyBxWaMOPYoPz6Ub/e96g5zA=
m7s.live/plugin/record/v4 v4.0.0-20220625032502-232d974a1c93/go.mod h1:pOe8VNiXm/m1SiJSO16iFZhqrWJeb1xcV3s9qv5v6eo=
m7s.live/plugin/room/v4 v4.0.0-20220512035851-f980d4a7f6a0 h1:rv/GTbcVz1k3/7xWHTXnp4f9LU7Bzf+qC3Dqe9TIEZs=
m7s.live/plugin/room/v4 v4.0.0-20220512035851-f980d4a7f6a0/go.mod h1:s/e+9cyOkJVMAsOVRM08RDvlPikeaeh5R26qk8oekFA=
m7s.live/plugin/rtmp/v4 v4.0.0-20220619154232-ab31af1fb7d6 h1:3YZmLR3waoaLLkyPCcKek6jrjX+EIK8tgILOYQqc0Is=
m7s.live/plugin/rtmp/v4 v4.0.0-20220619154232-ab31af1fb7d6/go.mod h1:Y+1A1ds4GgcoDennFy5DJntiuzeptO7EEqgu32bjJ70=
m7s.live/plugin/rtsp/v4 v4.0.0-20220619154428-2c1d908d7e68 h1:sKnga6vlsh3iVLwbjpIfdSLnypqZcjtWdPNjs97OTxg=
m7s.live/plugin/rtsp/v4 v4.0.0-20220619154428-2c1d908d7e68/go.mod h1:pGxUDv4pes+hA/PxDdUdJleyJpSbK0562hCC0TODMJ0=
m7s.live/plugin/snap/v4 v4.0.0-20220612035905-720756e0d9ce h1:oYlcXS0qX/LtLMry6Lvaidz91dw6nEIs8q4XIaU6+dw=
m7s.live/plugin/snap/v4 v4.0.0-20220612035905-720756e0d9ce/go.mod h1:XHggonZ0lIKEX/OP2rXjV2mPpG4urmvMT3foIaFRsus=
m7s.live/plugin/rtsp/v4 v4.0.0-20220702171423-ae37279dd194 h1:iokKYVIQCOV8SGVWndguAIKNQcn9IrIBtsMFI8iFYaE=
m7s.live/plugin/rtsp/v4 v4.0.0-20220702171423-ae37279dd194/go.mod h1:vzkSksXHo7Im77Yazqucrsa+VyOBV4UBlnrWW/oZpuo=
m7s.live/plugin/snap/v4 v4.0.0-20220619154320-97a4991e775b h1:fyy2rnRkjJnOIDJ4lIYHpDlxaAMJPYvXmhd/PbNhgrQ=
m7s.live/plugin/snap/v4 v4.0.0-20220619154320-97a4991e775b/go.mod h1:XHggonZ0lIKEX/OP2rXjV2mPpG4urmvMT3foIaFRsus=
m7s.live/plugin/webrtc/v4 v4.0.0-20220619154404-6a5d740a21de h1:YQuiVrN7XMsxbxvYC8696i0gFPPe8TsfTIUDMxmKrFQ=
m7s.live/plugin/webrtc/v4 v4.0.0-20220619154404-6a5d740a21de/go.mod h1:F78F1+ILZZbKYoHXr42YBXkHoi9D4W7jvjSazN38000=
m7s.live/plugin/webrtc/v4 v4.0.0-20220625121305-db54d6ee4d17 h1:gWGEjZ8rT7kDD3u7rnQX17XDQtRA7pEWgRQoE47VMXY=
m7s.live/plugin/webrtc/v4 v4.0.0-20220625121305-db54d6ee4d17/go.mod h1:F78F1+ILZZbKYoHXr42YBXkHoi9D4W7jvjSazN38000=
m7s.live/plugin/webtransport/v4 v4.0.0-20220619154419-bf138bc5958b h1:VIZh7EDfZ6kLv+f9sLMQzrRZObDiMVgFFaTalVAU+MI=
m7s.live/plugin/webtransport/v4 v4.0.0-20220619154419-bf138bc5958b/go.mod h1:RtqizBkC2q3QNA+gfYD1mMH6SVK8T/iprvaX+3SQ1B0=
sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck=

13
main.go
View File

@@ -2,6 +2,19 @@ package main
//go:generate go run gen.go $debug
/*
███╗ ███╗ ██████╗ ███╗ ██╗██╗██████╗ ██╗ ██╗ ██████╗ █████╗
████╗ ████║██╔═══██╗████╗ ██║██║██╔══██╗██║ ██║██╔════╝██╔══██╗
██╔████╔██║██║ ██║██╔██╗ ██║██║██████╔╝██║ ██║██║ ███████║
██║╚██╔╝██║██║ ██║██║╚██╗██║██║██╔══██╗██║ ██║██║ ██╔══██║
██║ ╚═╝ ██║╚██████╔╝██║ ╚████║██║██████╔╝╚██████╔╝╚██████╗██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝╚═════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝
The live stream server for Go
(c) dexter 2019-present
*/
import (
"context"
"flag"