Compare commits

..

7 Commits

Author SHA1 Message Date
langhuihui
2a89629149 fix: change tracks to sync.Map to void dead lock
fix: ps plugin dump
fix: record plugin nil pointer
feat: config support yaml tag name

修复: 修改tracks为sync.Map,避免死锁
修复: ps插件dump
修复: record插件空指针
特性: 配置支持yaml tag name
2023-05-21 22:20:33 +08:00
langhuihui
555b168cba 1. Add the global configuration item disableall to disable all plugins (a plugin can be individually enabled by configuring its enable)
2. Upgrade dataTrack to customTrack and freely add custom tracks
3. PS plugin adds a forwarding mode configuration item and the ability to pull PS streams through the ws protocol
4. Fix processing errors when dts exceeds the maximum value

1、增加全局配置项disableall 用于禁用全部插件(可通过配置插件的enable来单独开启某个插件)
2、dataTrack升级为customTrack,可自由添加自定义轨道
3、PS插件增加转发模式配置项,增加通过ws协议拉取ps流的功能
4、修复dts超过最大值后的处理错误
2023-05-17 07:49:28 +08:00
langhuihui
f2e0963add 1. Add a new PS plugin, move PS processing logic into it, and provide APIs to connect to PS streams
2. Added idletimeout configuration, which can be used to automatically disconnect after the first idle release
3. Handling situations where subscribers consume too slowly
4. Optimize RTMP plugin and merge write operations
5. Snap plugin adds support for URL parameters
6. Fix plugin reference errors used when publishing monitor plugins
7. The default certificate configuration for the webtransport plugin is local.monibuca.com

1、新增PS插件,将PS处理逻辑移入该插件,并提供API可接PS流
2、新增idletimeout配置,可用于首次发布空闲后自动断开
3、增加订阅者消费过慢的情况处理
4、优化rtmp插件,合并写入操作
5、snap插件增加对url参数的支持
6、修复monitor插件发布时使用的插件引用错误
7、webtransport插件默认的证书配置采用local.monibuca.com
2023-05-14 17:24:17 +08:00
langhuihui
326b4f5252 update readme 2023-05-05 18:32:34 +08:00
langhuihui
f4b4d9cb57 支持EnhancedRTMP——现可以接受OBS的H265的推流
GB插件对端口配置新增一个port配置项,可用于代替老的端口配置项
GB插件减少一处Bye引起的阻塞
2023-05-04 10:22:50 +08:00
langhuihui
0cea8a3433 1、支持读取mp4文件发布为流的能力
2、Subscribe增加Internal配置,可修改订阅者是否为内部订阅者
3、防止record插件在开始录制时阻塞事件总线
4、snap插件增加http配置,以自定义端口
5、修复一处因并发回收引起的崩溃
6、修复内置鉴权逻辑
2023-04-29 22:17:59 +08:00
langhuihui
146245c50d 1、增加内置鉴权机制(同腾讯云)
2、增加trace级别日志功能
3、修复rtsp转发webrtc部分流无法播放的问题
4、上个版本漏发了hdl插件更新
5、修复上个版本一处打印忘记去除
6、hls插件修改为暂时只接受AAC格式音频
2023-04-24 14:22:20 +08:00
5 changed files with 59 additions and 67 deletions

View File

@@ -1,11 +1,11 @@
# Official website
[https://m7s.live](https://m7s.live)
# 中文文档
[https://m7s.live/guide/introduction.html](https://m7s.live/guide/introduction.html)
<p align="center">
<a href="https://m7s.live">
<img src="logo.png" height="96">
</a>
</p>
<p align="center">
<a href="https://docs.m7s.live">中文文档</a>
</p>
# Core code base and plug-in code base
[https://github.com/Monibuca](https://github.com/Monibuca)

View File

@@ -1,11 +0,0 @@
global:
http:
listenaddr: :8080
rtsp:
listenaddr: :8554
rtmp:
enable: false
webtransport:
enable: false
hls:
enable: false

33
go.mod
View File

@@ -3,25 +3,25 @@ module monibuca
go 1.19
require (
m7s.live/engine/v4 v4.12.4
m7s.live/engine/v4 v4.12.10
m7s.live/plugin/debug/v4 v4.0.0-20220506113031-34f3a736ceb2
m7s.live/plugin/edge/v4 v4.0.4
m7s.live/plugin/fmp4/v4 v4.0.2
m7s.live/plugin/gb28181/v4 v4.2.12
m7s.live/plugin/hdl/v4 v4.1.4
m7s.live/plugin/hls/v4 v4.2.2
m7s.live/plugin/edge/v4 v4.0.5
m7s.live/plugin/fmp4/v4 v4.0.3
m7s.live/plugin/gb28181/v4 v4.3.2
m7s.live/plugin/hdl/v4 v4.1.5
m7s.live/plugin/hls/v4 v4.2.7
m7s.live/plugin/hook/v4 v4.0.2
m7s.live/plugin/jessica/v4 v4.1.1
m7s.live/plugin/jessica/v4 v4.1.4
m7s.live/plugin/logrotate/v4 v4.0.3
m7s.live/plugin/monitor/v4 v4.0.0
m7s.live/plugin/monitor/v4 v4.0.2
m7s.live/plugin/preview/v4 v4.0.4
m7s.live/plugin/record/v4 v4.3.0
m7s.live/plugin/room/v4 v4.0.7
m7s.live/plugin/rtmp/v4 v4.1.9
m7s.live/plugin/rtsp/v4 v4.2.0
m7s.live/plugin/snap/v4 v4.0.4
m7s.live/plugin/webrtc/v4 v4.1.3
m7s.live/plugin/webtransport/v4 v4.0.2
m7s.live/plugin/record/v4 v4.3.3
m7s.live/plugin/room/v4 v4.0.8
m7s.live/plugin/rtmp/v4 v4.1.11
m7s.live/plugin/rtsp/v4 v4.2.1
m7s.live/plugin/snap/v4 v4.0.6
m7s.live/plugin/webrtc/v4 v4.1.5
m7s.live/plugin/webtransport/v4 v4.0.4
)
require (
@@ -82,7 +82,7 @@ require (
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/numcpus v0.6.0 // indirect
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
github.com/yapingcat/gomedia v0.0.0-20230222121919-c67df405bf33 // indirect
github.com/yapingcat/gomedia v0.0.0-20230426092936-387031404274 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
@@ -97,4 +97,5 @@ require (
golang.org/x/text v0.9.0 // indirect
golang.org/x/tools v0.6.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
m7s.live/plugin/ps/v4 v4.0.2 // indirect
)

66
go.sum
View File

@@ -214,8 +214,8 @@ github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYm
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/yapingcat/gomedia v0.0.0-20230222121919-c67df405bf33 h1:uyZY++dluUg7iTSsNzuOVln/mC2U2KXwgKLfKLCJ74Y=
github.com/yapingcat/gomedia v0.0.0-20230222121919-c67df405bf33/go.mod h1:WSZ59bidJOO40JSJmLqlkBJrjZCtjbKKkygEMfzY/kc=
github.com/yapingcat/gomedia v0.0.0-20230426092936-387031404274 h1:cj4I+bvWX9I+Hg6tnZ7DAiOVxzhyLhdvYVKp+WpM/2c=
github.com/yapingcat/gomedia v0.0.0-20230426092936-387031404274/go.mod h1:WSZ59bidJOO40JSJmLqlkBJrjZCtjbKKkygEMfzY/kc=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
@@ -356,41 +356,43 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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.12.4 h1:G8bp7UDqzzUrhsASZyKFQb+qqtS42aUJ0GbkNqnBT6M=
m7s.live/engine/v4 v4.12.4/go.mod h1:AiJPBwdA77DM3fymlcH2qYPR8ivL6ib9UVLm1Rft/to=
m7s.live/engine/v4 v4.12.10 h1:vO9jKAbeywZ2YTlg2TNEPc8t1neLZAUWkosrjHdGpcc=
m7s.live/engine/v4 v4.12.10/go.mod h1:LoALBfV5rmsz5TJQr6cmLxM33mfUE5BKBq/sMtXOVlc=
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/edge/v4 v4.0.4 h1:NvvYeAbpA1/Vg8dx5e4as/o+PbSCiSI2xoRkKOXBjhI=
m7s.live/plugin/edge/v4 v4.0.4/go.mod h1:AWeJV1Nu2UWsEdlcCATlQW+bz6Pz/3A11AZG9Z4hIc0=
m7s.live/plugin/fmp4/v4 v4.0.2 h1:IHAFEEktDzHoEhsfonCzMt9lNttp1Qz2R2u4wfOCDos=
m7s.live/plugin/fmp4/v4 v4.0.2/go.mod h1:9/DlkfpXuBtZziwARFHZogLRnT+vjXPbO5eTrbGkY+8=
m7s.live/plugin/gb28181/v4 v4.2.12 h1:p0ekloW+TyoClObDm8hF/HKxK+DEPipH0x2Ruv3p/aY=
m7s.live/plugin/gb28181/v4 v4.2.12/go.mod h1:zz6vOdI97lwLVPIJEeYQlASrKfWn3QPt+g4yt7gVx5c=
m7s.live/plugin/hdl/v4 v4.1.4 h1:iIvf8RBqd3EIQdol4aMarLHYpe1ukOvzfVhB9/yJpnY=
m7s.live/plugin/hdl/v4 v4.1.4/go.mod h1:tUcbO5AZLj4Kg5UILxhYrDdSHnNNWPMQxN/+NFQuaTE=
m7s.live/plugin/hls/v4 v4.2.2 h1:g3Sepkz4nATVT0Sl1hyDfSiGIvo2JUOziv6jLHLBu9g=
m7s.live/plugin/hls/v4 v4.2.2/go.mod h1:PH2AORCqWeBUveHFXxkCYLXoFCwgAVoE7hCqgj4lPR8=
m7s.live/plugin/edge/v4 v4.0.5 h1:0CEfbMAmD2jAUeb+jaZD5vvq968wrJli30PUkaNpbDo=
m7s.live/plugin/edge/v4 v4.0.5/go.mod h1:AWeJV1Nu2UWsEdlcCATlQW+bz6Pz/3A11AZG9Z4hIc0=
m7s.live/plugin/fmp4/v4 v4.0.3 h1:4wdIuM+COZG1J+0fvdwlsUnUKtMm2sOItM/IYw0zvMw=
m7s.live/plugin/fmp4/v4 v4.0.3/go.mod h1:9/DlkfpXuBtZziwARFHZogLRnT+vjXPbO5eTrbGkY+8=
m7s.live/plugin/gb28181/v4 v4.3.2 h1:P0RoBTrD2zkjeMLjzu52D0YXWn0mGLfFy81AH4kSxcw=
m7s.live/plugin/gb28181/v4 v4.3.2/go.mod h1:8OT8exFBJX+Er6V0rrFwrZSG26mnGvE5vPNNYQduLHc=
m7s.live/plugin/hdl/v4 v4.1.5 h1:0A1bUiAmcUiUCimM4+QyDmiHJE3+BQhHXIEPiZGNxT8=
m7s.live/plugin/hdl/v4 v4.1.5/go.mod h1:tUcbO5AZLj4Kg5UILxhYrDdSHnNNWPMQxN/+NFQuaTE=
m7s.live/plugin/hls/v4 v4.2.7 h1:KXEvdZsXx+UsPVDO2qoAAjYrJzNluxpkHFXn/ESRrPY=
m7s.live/plugin/hls/v4 v4.2.7/go.mod h1:7HpRotPvT0xxmFwcTEt0S89U5J1pzTCkBWwAq4Zte9I=
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.1.1 h1:+0rW+z5vZC2M2MpFRlk/VW8ugvfdil1s5UPMdeHoigo=
m7s.live/plugin/jessica/v4 v4.1.1/go.mod h1:PiKCNriToVPytx5WMAtE26i8k1g7eP7Pud1msrU3X6g=
m7s.live/plugin/jessica/v4 v4.1.4 h1:6aYwIvNzPh6P06fiPrpb+R69Jx3f5g400vXLdsIa0Bk=
m7s.live/plugin/jessica/v4 v4.1.4/go.mod h1:lUmggsscxqiIvPSY1+RB2vzGstpgSaj/HQOlNTOVCCs=
m7s.live/plugin/logrotate/v4 v4.0.3 h1:f+teASc5Y5vDOrxXFc/ri3t7jdi6GIb6V9UMjhacb7I=
m7s.live/plugin/logrotate/v4 v4.0.3/go.mod h1:a8hIV59GjpQDE+Ip790CU7yOHaG4+Iweci0sLvo43FU=
m7s.live/plugin/monitor/v4 v4.0.0 h1:YfMbaJ5jVWkqa0wFRsh04c8A7O0+VI29KdVBxxTR+q0=
m7s.live/plugin/monitor/v4 v4.0.0/go.mod h1:wYcjvXM03RK00DGA/R7zfiENNT7jDFQhp0rEBvO1mTw=
m7s.live/plugin/monitor/v4 v4.0.2 h1:Pto/w3HqzN19wLIJLRwsXPOfLOrkE3b10GCtoqP3UsY=
m7s.live/plugin/monitor/v4 v4.0.2/go.mod h1:wYcjvXM03RK00DGA/R7zfiENNT7jDFQhp0rEBvO1mTw=
m7s.live/plugin/preview/v4 v4.0.4 h1:xDS0817CLo3hx+wAcncE46gPDiPN5AsIWdAdbBltGDA=
m7s.live/plugin/preview/v4 v4.0.4/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
m7s.live/plugin/record/v4 v4.3.0 h1:yfR221UazsRU43YOPUgd6vmwMIbMm6q4mleHa0MjdcU=
m7s.live/plugin/record/v4 v4.3.0/go.mod h1:SlOV0HCGNPn+AI1EjgttnA3KgQ2xccEUomBeVv4KKKM=
m7s.live/plugin/room/v4 v4.0.7 h1:K+KKLa+tr3eDCsQCgmpF8/QXYkro6zhmAFCOgkvLUro=
m7s.live/plugin/room/v4 v4.0.7/go.mod h1:etzDx/MHFm1XPDNwqprJbtY8iXLYiG3KeMg62z7MiSw=
m7s.live/plugin/rtmp/v4 v4.1.9 h1:6QZzqB8PYgeq2ccGJ6nAESZx8AgTPWyzxE6+ZPk2MVg=
m7s.live/plugin/rtmp/v4 v4.1.9/go.mod h1:7+3oO93TIsSlASnv482PCE3CXhYqyRIAwA8FllnOTgE=
m7s.live/plugin/rtsp/v4 v4.2.0 h1:5I21OvTPydI7Vc5ZanuleklB6+z99nbLE92/JtJrGrQ=
m7s.live/plugin/rtsp/v4 v4.2.0/go.mod h1:u9NxY+ySaSCYlbyBTX5yBzQVw1CN+3ZbgsBWmEP1zSo=
m7s.live/plugin/snap/v4 v4.0.4 h1:v9QGkIFA3Q25shs0YYZ1sju8UfBvlo57fEdp0RwLEpo=
m7s.live/plugin/snap/v4 v4.0.4/go.mod h1:XHggonZ0lIKEX/OP2rXjV2mPpG4urmvMT3foIaFRsus=
m7s.live/plugin/webrtc/v4 v4.1.3 h1:EQ+PxvFE3DRm6z1Sdmnin1raBAgx80Sv1iiHEoDcZSg=
m7s.live/plugin/webrtc/v4 v4.1.3/go.mod h1:0kDXvyiPUputAR9MT6U9zu8yuJ5JhkYEMHB6aYEBRU8=
m7s.live/plugin/webtransport/v4 v4.0.2 h1:skL5jxg8rJ4PGJZVJ8pZmxRuJHp8i+pXlH6uQzOdEN0=
m7s.live/plugin/webtransport/v4 v4.0.2/go.mod h1:If9KBJmsoz8Ae37+fds4EBinbNV8a8tqPjLGLvVAr28=
m7s.live/plugin/ps/v4 v4.0.2 h1:Mpg+bsi+RnGtscG3NrN6mog2/gaRRPgqnsTGwiEsEO4=
m7s.live/plugin/ps/v4 v4.0.2/go.mod h1:lAPr3gGIFoU4ctMRnPeyjbcREueyT6TfiKhWBgDrOGM=
m7s.live/plugin/record/v4 v4.3.3 h1:2I0zrRjQqdgERlaP0YaL4B21cMqEKIDYfdVBTPi1mNI=
m7s.live/plugin/record/v4 v4.3.3/go.mod h1:8TWcAJAjMcsHOiuT/SVCxdknSmlXH93iZowkQLOfFU0=
m7s.live/plugin/room/v4 v4.0.8 h1:tt3VU7kM8OS4HZ3CMmssLKE0YyIrqzPJSr16we0DNcQ=
m7s.live/plugin/room/v4 v4.0.8/go.mod h1:rmngA5yNAJpjsT1+jt6kvbMtT7gjLM7q/gwPq3vaQDY=
m7s.live/plugin/rtmp/v4 v4.1.11 h1:wYsyzWyArkE4WU7mlGbgUbu2/oqCU3Wnr4StOE7qfHg=
m7s.live/plugin/rtmp/v4 v4.1.11/go.mod h1:7+3oO93TIsSlASnv482PCE3CXhYqyRIAwA8FllnOTgE=
m7s.live/plugin/rtsp/v4 v4.2.1 h1:wkaRjWQeXJbfwCNF7USUBEUcnRQ5AAs19xKRRxdNKUA=
m7s.live/plugin/rtsp/v4 v4.2.1/go.mod h1:ZZXfNRkL/2sEf5AOXQVQl5nPtbIyF4TMVCyjo5itdQ8=
m7s.live/plugin/snap/v4 v4.0.6 h1:Hz0WEN6YrKDWvwpAwpfPl+V40eW0k/+8qzqS2OupzxA=
m7s.live/plugin/snap/v4 v4.0.6/go.mod h1:XHggonZ0lIKEX/OP2rXjV2mPpG4urmvMT3foIaFRsus=
m7s.live/plugin/webrtc/v4 v4.1.5 h1:hqOJv2NVP/z4ZXd7VPhcPKW700aOkqiu+h5YX3kdriQ=
m7s.live/plugin/webrtc/v4 v4.1.5/go.mod h1:0kDXvyiPUputAR9MT6U9zu8yuJ5JhkYEMHB6aYEBRU8=
m7s.live/plugin/webtransport/v4 v4.0.4 h1:s0mSwXJDukHk9tBcBq+QeqvIQJ86+p91NYSpeA/GVqk=
m7s.live/plugin/webtransport/v4 v4.0.4/go.mod h1:If9KBJmsoz8Ae37+fds4EBinbNV8a8tqPjLGLvVAr28=

BIN
logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB