mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a89629149 | ||
|
|
555b168cba | ||
|
|
f2e0963add | ||
|
|
326b4f5252 | ||
|
|
f4b4d9cb57 | ||
|
|
0cea8a3433 | ||
|
|
146245c50d | ||
|
|
65283c995d | ||
|
|
84d9e05409 | ||
|
|
248eefd1b0 | ||
|
|
c95dbfb291 | ||
|
|
e65da00dac | ||
|
|
5a436e0965 | ||
|
|
4652af0975 |
7
.gitignore
vendored
7
.gitignore
vendored
@@ -13,10 +13,13 @@ dist/
|
||||
record/
|
||||
config2.yaml
|
||||
config1.yaml
|
||||
monibuca_linux
|
||||
monibuca_*
|
||||
ps
|
||||
ps2
|
||||
ps3
|
||||
devices.json
|
||||
dump
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
main
|
||||
monitor
|
||||
.history
|
||||
33
README.md
33
README.md
@@ -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)
|
||||
@@ -78,6 +78,12 @@ If you are an experienced developer, then the best way is to carry out secondary
|
||||
|
||||
Third-party plugins and paid plugins provide additional functionality and are not listed here.
|
||||
|
||||
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)
|
||||
|
||||
## Remote console
|
||||
|
||||
- Provides multi-instance management
|
||||
@@ -98,12 +104,13 @@ The word Monibuca is derived from (Monica), and in order to solve the naming pro
|
||||
- If you need to compile and start the project yourself, you need to install go1.19 or above.
|
||||
|
||||
The official download link of the latest version is provided:
|
||||
- [Linux](https://m7s.live/bin/m7s_linux_x86)
|
||||
- [Linux-arm64](https://m7s.live/bin/m7s_linux_arm64)
|
||||
- [Mac](https://m7s.live/bin/m7s_darwin_x86)
|
||||
- [Mac-arm64](https://m7s.live/bin/m7s_darwin_arm64)
|
||||
- [Windows](https://m7s.live/bin/m7s_windows_x86)
|
||||
- [Linux](https://download.m7s.live/bin/m7s_linux_arm64.tar.gz)
|
||||
- [Linux-arm64](https://download.m7s.live/bin/m7s_linux_arm64.tar.gz)
|
||||
- [Mac](https://download.m7s.live/bin/m7s_darwin_arm64.tar.gz)
|
||||
- [Mac-arm64](https://download.m7s.live/bin/m7s_darwin_arm64.tar.gz)
|
||||
- [Windows](https://download.m7s.live/bin/m7s_windows_amd64.tar.gz)
|
||||
|
||||
Don't forget to fix the rights chmod +x m7s_xxx_xxx on Linux and Mac.
|
||||
# Run
|
||||
|
||||
## Executable files run directly
|
||||
|
||||
11
config2.yaml
11
config2.yaml
@@ -1,11 +0,0 @@
|
||||
global:
|
||||
http:
|
||||
listenaddr: :8080
|
||||
rtsp:
|
||||
listenaddr: :8554
|
||||
rtmp:
|
||||
enable: false
|
||||
webtransport:
|
||||
enable: false
|
||||
hls:
|
||||
enable: false
|
||||
53
go.mod
53
go.mod
@@ -3,29 +3,33 @@ module monibuca
|
||||
go 1.19
|
||||
|
||||
require (
|
||||
m7s.live/engine/v4 v4.11.16
|
||||
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.1
|
||||
m7s.live/plugin/gb28181/v4 v4.2.9
|
||||
m7s.live/plugin/hdl/v4 v4.1.2
|
||||
m7s.live/plugin/hls/v4 v4.1.7
|
||||
m7s.live/plugin/hook/v4 v4.0.1
|
||||
m7s.live/plugin/jessica/v4 v4.1.1
|
||||
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.4
|
||||
m7s.live/plugin/logrotate/v4 v4.0.3
|
||||
m7s.live/plugin/preview/v4 v4.0.3
|
||||
m7s.live/plugin/record/v4 v4.2.6
|
||||
m7s.live/plugin/room/v4 v4.0.5
|
||||
m7s.live/plugin/rtmp/v4 v4.1.7
|
||||
m7s.live/plugin/rtsp/v4 v4.1.4
|
||||
m7s.live/plugin/snap/v4 v4.0.4
|
||||
m7s.live/plugin/webrtc/v4 v4.1.1
|
||||
m7s.live/plugin/webtransport/v4 v4.0.2
|
||||
m7s.live/plugin/monitor/v4 v4.0.2
|
||||
m7s.live/plugin/preview/v4 v4.0.4
|
||||
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 (
|
||||
github.com/aler9/gortsplib/v2 v2.1.4 // indirect
|
||||
github.com/aler9/gortsplib/v2 v2.2.2 // indirect
|
||||
github.com/bluenviron/gortsplib/v3 v3.2.1 // indirect
|
||||
github.com/bluenviron/mediacommon v0.2.1 // indirect
|
||||
github.com/cnotch/ipchub v1.1.0 // indirect
|
||||
github.com/denisbrodbeck/machineid v1.0.1 // indirect
|
||||
github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca // indirect
|
||||
github.com/edgeware/mp4ff v0.30.1 // indirect
|
||||
github.com/ghettovoice/gosip v0.0.0-20221121090201-9a2ed2233b6d // indirect
|
||||
@@ -78,19 +82,20 @@ 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
|
||||
go.uber.org/zap v1.24.0 // indirect
|
||||
golang.org/x/crypto v0.6.0 // indirect
|
||||
golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
|
||||
golang.org/x/mod v0.7.0 // indirect
|
||||
golang.org/x/net v0.7.0 // indirect
|
||||
golang.org/x/mod v0.8.0 // indirect
|
||||
golang.org/x/net v0.9.0 // indirect
|
||||
golang.org/x/sync v0.1.0 // indirect
|
||||
golang.org/x/sys v0.5.0 // indirect
|
||||
golang.org/x/term v0.5.0 // indirect
|
||||
golang.org/x/text v0.7.0 // indirect
|
||||
golang.org/x/tools v0.3.0 // indirect
|
||||
golang.org/x/sys v0.7.0 // indirect
|
||||
golang.org/x/term v0.7.0 // indirect
|
||||
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
|
||||
)
|
||||
|
||||
104
go.sum
104
go.sum
@@ -1,7 +1,11 @@
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/aler9/gortsplib/v2 v2.1.4 h1:A4C4Qxz3aQibphXoKsifwKmKZRY7leaO3jHkA+SQ2kw=
|
||||
github.com/aler9/gortsplib/v2 v2.1.4/go.mod h1:Eegw8PWa8hNYXiYMlbK3RX1gr7+r25MxniAPGA+kKUE=
|
||||
github.com/aler9/gortsplib/v2 v2.2.2 h1:tTw8pdKSOEjlZjjE1S4ftXPHJkYOqjNNv3hjQ0Nto9M=
|
||||
github.com/aler9/gortsplib/v2 v2.2.2/go.mod h1:k6uBVHGwsIc/0L5SLLqWwi6bSJUb4VR0HfvncyHlKQI=
|
||||
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
|
||||
github.com/bluenviron/gortsplib/v3 v3.2.1 h1:wdMocTWu1EWa9PPWb8F/S6LY2hZikgrs7zgDtnwBPO0=
|
||||
github.com/bluenviron/gortsplib/v3 v3.2.1/go.mod h1:AzHdywoBckre5q9Y581xg93PVthXayVHVqYMc3hwBlk=
|
||||
github.com/bluenviron/mediacommon v0.2.1 h1:NkbbXwjMqspatQwSyGDYqxg14ftxJSjNsnPNocUxScw=
|
||||
github.com/bluenviron/mediacommon v0.2.1/go.mod h1:t0dqPsWUTchyvib0MhixIwXEgvDX4V9G+I0GzWLQRb8=
|
||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
@@ -16,6 +20,8 @@ github.com/cnotch/xlog v0.0.0-20201208005456-cfda439cd3a0/go.mod h1:RW9oHsR79ffl
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ=
|
||||
github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI=
|
||||
github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca h1:cTTdXpkQ1aVbOOmHwdwtYuwUZcQtcMrleD1UXLWhAq8=
|
||||
github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca/go.mod h1:W+3LQaEkN8qAwwcw0KC546sUEnX86GIT8CcMLZC4mG0=
|
||||
github.com/edgeware/mp4ff v0.30.1 h1:OV88fQrw8sFPjTCFThsBwubjYPHTdHgb28pSd1y9ozk=
|
||||
@@ -195,8 +201,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
|
||||
github.com/tevino/abool v0.0.0-20170917061928-9b9efcf221b5/go.mod h1:f1SCnEOt6sc3fOJfPQDRDzHOtSXuTtnz0ImG9kPRDV0=
|
||||
github.com/tevino/abool v1.2.0 h1:heAkClL8H6w+mK5md9dzsuohKeXHUpY7Vw0ZCKW+huA=
|
||||
github.com/tevino/abool v1.2.0/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg=
|
||||
@@ -208,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=
|
||||
@@ -236,8 +242,8 @@ golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZ
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA=
|
||||
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
@@ -251,8 +257,9 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
|
||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||
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=
|
||||
@@ -291,15 +298,17 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
|
||||
golang.org/x/sys v0.7.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=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
|
||||
golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
|
||||
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
||||
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=
|
||||
@@ -307,15 +316,16 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM=
|
||||
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
|
||||
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -346,39 +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.11.16 h1:ZxOvTb3BYPU41yRiEGVSQjQsjxjerUrDlSpcfhV8yM0=
|
||||
m7s.live/engine/v4 v4.11.16/go.mod h1:0gK75fj3GjUcVX5Tu/zC7MSob5nFnA1BYTeMt3w7uMU=
|
||||
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.1 h1:HX6bkrkHm214DnmpBkyt/a/cE4aeIEHcu4o65OTh7sk=
|
||||
m7s.live/plugin/fmp4/v4 v4.0.1/go.mod h1:9/DlkfpXuBtZziwARFHZogLRnT+vjXPbO5eTrbGkY+8=
|
||||
m7s.live/plugin/gb28181/v4 v4.2.9 h1:x2esTcAJHWi6duE6H0Ql0cFLnVgpAMgroP7hsofeGFg=
|
||||
m7s.live/plugin/gb28181/v4 v4.2.9/go.mod h1:kXgyGFswJkhGY1fm1ZqUTsDFTv8MQWXKF5sBZiz3hGY=
|
||||
m7s.live/plugin/hdl/v4 v4.1.2 h1:3I6diqnkdu6FDsMckCKFuC/iEkO2pcBHXQR73yLzWa4=
|
||||
m7s.live/plugin/hdl/v4 v4.1.2/go.mod h1:eHwc7USoFXwutbf4nmtA+lqJF6VU0VjQtNgRhDHhAFU=
|
||||
m7s.live/plugin/hls/v4 v4.1.7 h1:yIVC6G2M/SMw7WQJ9rcqG9cl0nFPIzs08NRWFmEOfO8=
|
||||
m7s.live/plugin/hls/v4 v4.1.7/go.mod h1:sSiXP8EuOppMkT5NTxyj41ghC+AcyqjQtH+xaCgr8W4=
|
||||
m7s.live/plugin/hook/v4 v4.0.1 h1:On3GigXkL14pQacu+lF307jJXDtCEpcmvY79a/DfW7A=
|
||||
m7s.live/plugin/hook/v4 v4.0.1/go.mod h1:uaTVDsOTiaJ8gUal4YnL5rcpUUhbExn2G8VzEvNGLE0=
|
||||
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/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.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/preview/v4 v4.0.3 h1:p1t+LXg0HZvHqjPn3+TeO6rB4EtwHnanlH2VgtFZtNY=
|
||||
m7s.live/plugin/preview/v4 v4.0.3/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg=
|
||||
m7s.live/plugin/record/v4 v4.2.6 h1:23pTpxS77+0AzBPmELl+VVKcHFkO06gWLOktKYIpC3U=
|
||||
m7s.live/plugin/record/v4 v4.2.6/go.mod h1:8fXbmsS+QCQhp136FdqBVEQsbNccWFAYTQDRJW/muQU=
|
||||
m7s.live/plugin/room/v4 v4.0.5 h1:8VpRBndYR6WjCCA7hr12MyyoEtiOpM0y8PdM0QoUMbQ=
|
||||
m7s.live/plugin/room/v4 v4.0.5/go.mod h1:kNegZ4mp/h0bgxlRZYoCpdPugNMbxfkM48d1ZKUbUz0=
|
||||
m7s.live/plugin/rtmp/v4 v4.1.7 h1:kzzwAu1Z+GV7c9c7kde3Zc85W0MUHlJ98uDyih68GhA=
|
||||
m7s.live/plugin/rtmp/v4 v4.1.7/go.mod h1:nHbmIh7H2Vro8OeXWVbxEeCk29ngt0UIsW6ha0Wte2I=
|
||||
m7s.live/plugin/rtsp/v4 v4.1.4 h1:DLLdnLwwpiuN6eA3Ds6LX1RnlnShQtVxVN2FpXC7gqg=
|
||||
m7s.live/plugin/rtsp/v4 v4.1.4/go.mod h1:tJA13PbEU4JeU0gto8N0OzDGFkD5q/P6ONK1f+VznhA=
|
||||
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.1 h1:mz0TtoGUFNnnPuxtgK2JIdRKHk0GBeAMFqATkHYrnHY=
|
||||
m7s.live/plugin/webrtc/v4 v4.1.1/go.mod h1:UaiRtZYS3pYjy1JSVqLn71FlIkK8hRbKxCrtBmtwUoc=
|
||||
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/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/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=
|
||||
|
||||
24
main.go
24
main.go
@@ -11,6 +11,25 @@ package main
|
||||
|
||||
The live stream server for Go
|
||||
(c) dexter 2019-present
|
||||
|
||||
说明:
|
||||
本项目为 monibuca 的启动工程,你也可以自己创建一个启动工程
|
||||
本启动工程引入了 engine 和一些列官方插件,并且保证版本依赖关系
|
||||
自己创建工程的时候,版本依赖必须参考本工程,否则容易出现依赖关系错乱
|
||||
流的播放地址请查看文档:https://m7s.live/guide/qa/play.html
|
||||
推拉流的配置方法看文档:https://m7s.live/guide/config.html#%E6%8F%92%E4%BB%B6%E9%85%8D%E7%BD%AE
|
||||
|
||||
高频问题:
|
||||
1、OBS只能推送 rtmp 协议,如需推送 rtsp 需要安装插件
|
||||
2、除了rtsp协议以外其他协议播放H265需要使用jessibuca播放器(preview 插件内置了jessibuca播放器)
|
||||
3、浏览器不能直接播放rtmp、rtsp等基于tcp的协议,因为在js的环境中,无法直接使用tcp或者udp传数据(js没提供接口),而rtsp或rtmp的流是基于tcp或者udp, 所以纯web的方式目前是没办法直接播放rtsp或rtmp流的
|
||||
4、webrtc是否可以播放h265取决于浏览器是否包含h265解码器(通常不包含)
|
||||
5、webrtc不支持aac格式的音频
|
||||
6、gb插件能收到设备的注册,但是没有流,可能:1、媒体端口被防火墙拦截默认是58200,2、使用公网IP需要配置sipip字段或者mediaip字段用于设备向指定IP发送流。3、配置范围端口(部分设备ssrc乱搞导致的)
|
||||
7、当没有订阅者的时候如何自动停止拉流:设置publish 配置下的 delayclosetimeout 参数例如 10s,代表最后一个订阅者离开后 10s 后自动停止流
|
||||
8、使用 ffmpeg 推流时请加-c:v h264 -c:a aac,否则 ffmpeg 会自动将流转换成系统不支持的格式
|
||||
9、StreamPath 必须形如 live/test 。不能只有一级,或者斜杠开头,如/live 是错误的。
|
||||
10、如果遇到直接退出(崩溃)查看一下fatal.log。
|
||||
*/
|
||||
|
||||
import (
|
||||
@@ -21,13 +40,13 @@ import (
|
||||
"m7s.live/engine/v4"
|
||||
"m7s.live/engine/v4/util"
|
||||
|
||||
_ "m7s.live/plugin/logrotate/v4"
|
||||
_ "m7s.live/plugin/debug/v4"
|
||||
_ "m7s.live/plugin/gb28181/v4"
|
||||
_ "m7s.live/plugin/hdl/v4"
|
||||
_ "m7s.live/plugin/hls/v4"
|
||||
_ "m7s.live/plugin/hook/v4"
|
||||
_ "m7s.live/plugin/jessica/v4"
|
||||
_ "m7s.live/plugin/logrotate/v4"
|
||||
_ "m7s.live/plugin/preview/v4"
|
||||
_ "m7s.live/plugin/record/v4"
|
||||
_ "m7s.live/plugin/room/v4"
|
||||
@@ -38,6 +57,7 @@ import (
|
||||
_ "m7s.live/plugin/webtransport/v4"
|
||||
_ "m7s.live/plugin/edge/v4"
|
||||
_ "m7s.live/plugin/fmp4/v4"
|
||||
_ "m7s.live/plugin/monitor/v4"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -45,7 +65,7 @@ var (
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("start monibuca version:", version)
|
||||
fmt.Println("start github.com/langhuihui/monibuca version:", version)
|
||||
conf := flag.String("c", "config.yaml", "config file")
|
||||
flag.Parse()
|
||||
ctx, cancel := context.WithCancel(context.WithValue(context.Background(), "version", version))
|
||||
|
||||
Reference in New Issue
Block a user