├── .github ├── FUNDING.yml └── workflows │ └── go.yml ├── .gitignore ├── README.md ├── conf ├── client.yaml ├── server.yaml └── transcode.yaml ├── config.yaml ├── ffmpeg.go ├── ffmpeg_darwin.go ├── go.mod ├── go.sum └── main.go /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: monibuca 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /.github/workflows/go.yml: -------------------------------------------------------------------------------- 1 | name: Go 2 | 3 | on: 4 | create: 5 | tags: 6 | - v* 7 | 8 | jobs: 9 | 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | 14 | - uses: actions/checkout@v3 15 | with: 16 | fetch-depth: 1 17 | 18 | - name: Set up Go 19 | uses: actions/setup-go@v5 20 | with: 21 | token: ${{ secrets.GITHUB_TOKEN }} 22 | go-version: 1.21.8 23 | 24 | - name: Download PRIVATE dependencies 25 | env: 26 | SSH_AUTH_SOCK: /tmp/ssh_agent.sock 27 | GOPRIVATE: m7s.live/plugin/snappro/v4,m7s.live/plugin/transcode/v4,m7s.live/plugin/cascade,m7s.live/plugin/cdn,m7s.live/plugin/crypto,m7s.live/plugin/admin 28 | CGO_ENABLED: 0 29 | run: | 30 | mkdir -p ~/.ssh bin 31 | ssh-keyscan github.com >> ~/.ssh/known_hosts 32 | ssh-agent -a $SSH_AUTH_SOCK > /dev/null 33 | ssh-add - <<< "${{ secrets.GO_MODULE_PRIVATE_KEY }}" 34 | echo "SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $GITHUB_ENV 35 | git config --global url.ssh://git@github.com/.insteadOf https://github.com/ 36 | git clone --depth 1 git@github.com:Monibuca/plugin-admin 37 | go mod tidy 38 | go env 39 | go build -o m7s -ldflags="-s -w -X main.version=${GITHUB_REF:11}" main.go 40 | tar -zcvf bin/m7s_linux_amd64.tar.gz m7s conf 41 | mv m7s plugin-admin/apps/gb28181/src-tauri/m7s-x86_64-unknown-linux-gnu 42 | 43 | go env -w GOOS=windows 44 | go build -o m7s.exe -ldflags="-s -w -X main.version=${GITHUB_REF:11}" main.go 45 | zip bin/m7s_windows_amd64.zip m7s.exe conf 46 | mv m7s.exe plugin-admin/apps/gb28181/src-tauri/m7s-x86_64-pc-windows-msvc.exe 47 | 48 | go env -w GOOS=darwin 49 | go build -o m7s -ldflags="-s -w -X main.version=${GITHUB_REF:11}" main.go 50 | tar -zcvf bin/m7s_darwin_amd64.tar.gz m7s conf 51 | mv m7s plugin-admin/apps/gb28181/src-tauri/m7s-x86_64-apple-darwin 52 | 53 | go env -w GOARCH=arm64 54 | go build -o m7s -ldflags="-s -w -X main.version=${GITHUB_REF:11}" main.go 55 | tar -zcvf bin/m7s_darwin_arm64.tar.gz m7s conf 56 | mv m7s plugin-admin/apps/gb28181/src-tauri/m7s-aarch64-apple-darwin 57 | 58 | go env -w GOOS=linux 59 | go build -o m7s -ldflags="-s -w -X main.version=${GITHUB_REF:11}" main.go 60 | tar -zcvf bin/m7s_linux_arm64.tar.gz m7s conf 61 | 62 | - name: R2 Release 63 | uses: shallwefootball/upload-s3-action@v1.3.3 64 | with: 65 | aws_key_id: ${{ secrets.R2_KEY }} 66 | aws_secret_access_key: ${{ secrets.R2_SECRET }} 67 | aws_bucket: monibuca 68 | source_dir: bin 69 | destination_dir: pro 70 | endpoint: https://${{ secrets.R2_DOMAIN }} 71 | 72 | 73 | # - name: Upload Artifact 74 | # uses: actions/upload-artifact@v4 75 | # with: 76 | # name: binaries 77 | # path: plugin-admin 78 | # build-tauri-windows: 79 | # needs: build 80 | # runs-on: windows-latest 81 | # steps: 82 | # - name: setup node 83 | # uses: actions/setup-node@v3 84 | # with: 85 | # node-version: 18 86 | 87 | # - name: install Rust stable windows 88 | # uses: actions-rs/toolchain@v1 89 | # with: 90 | # default: true 91 | # override: true 92 | # profile: minimal 93 | # toolchain: stable 94 | # target: x86_64-pc-windows-msvc 95 | # - name: Download Artifact 96 | # uses: actions/download-artifact@v4 97 | # with: 98 | # name: binaries 99 | # - uses: JonasKruckenberg/tauri-build@v1 100 | # id: tauri_build 101 | # env: 102 | # TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} 103 | # with: 104 | # target: x86_64-pc-windows-msvc 105 | # projectPath: apps/gb28181/src-tauri 106 | # debug: true 107 | # - name: copy ouputs 108 | # run: | 109 | # mkdir -p dist 110 | # $files = "${{ join(fromJSON(steps.tauri_build.outputs.artifacts),'","') }}" 111 | # Copy-Item -Path $files -Destination dist 112 | # - name: R2 Release 113 | # uses: shallwefootball/upload-s3-action@v1.3.3 114 | # with: 115 | # aws_key_id: ${{ secrets.R2_KEY }} 116 | # aws_secret_access_key: ${{ secrets.R2_SECRET }} 117 | # aws_bucket: monibuca 118 | # source_dir: dist 119 | # destination_dir: pro 120 | # endpoint: https://${{ secrets.R2_DOMAIN }} 121 | 122 | 123 | # build-tauri-mac: 124 | # needs: build 125 | # strategy: 126 | # fail-fast: false 127 | # matrix: 128 | # rust_target: 129 | # - x86_64 130 | # - aarch64 131 | # runs-on: macos-latest 132 | # steps: 133 | # - name: setup node 134 | # uses: actions/setup-node@v3 135 | # with: 136 | # node-version: 18 137 | 138 | # - name: install Rust stable 139 | # uses: actions-rs/toolchain@v1 140 | # with: 141 | # default: true 142 | # override: true 143 | # profile: minimal 144 | # toolchain: stable 145 | # target: ${{ matrix.rust_target }}-apple-darwin 146 | 147 | # - name: Download Artifact 148 | # uses: actions/download-artifact@v4 149 | # with: 150 | # name: binaries 151 | # - name: chmod 152 | # run: | 153 | # chmod 777 apps/gb28181/src-tauri/m7s-${{ matrix.rust_target }}-apple-darwin 154 | # - uses: JonasKruckenberg/tauri-build@v1 155 | # id: tauri_build 156 | # env: 157 | # TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} 158 | # with: 159 | # target: ${{ matrix.rust_target }}-apple-darwin 160 | # projectPath: apps/gb28181/src-tauri 161 | # debug: true 162 | # - name: copy ouputs 163 | # run: | 164 | # mkdir -p dist 165 | # cp ${{ join(fromJSON(steps.tauri_build.outputs.artifacts),' ') }} dist/ 166 | # mv dist/m7s-pro.app dist/m7s-pro_${{ matrix.rust_target }}.app 167 | # mv dist/m7s-pro.app.tar.gz dist/m7s-pro_${{ matrix.rust_target }}.app.tar.gz 168 | # - name: R2 Release 169 | # uses: shallwefootball/upload-s3-action@v1.3.3 170 | # with: 171 | # aws_key_id: ${{ secrets.R2_KEY }} 172 | # aws_secret_access_key: ${{ secrets.R2_SECRET }} 173 | # aws_bucket: monibuca 174 | # source_dir: dist 175 | # destination_dir: pro 176 | # endpoint: https://${{ secrets.R2_DOMAIN }} 177 | 178 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | logs 3 | record 4 | # Test binary, built with `go test -c` 5 | *.test 6 | 7 | # Output of the go coverage tool, specifically when used with LiteIDE 8 | *.out 9 | 10 | # Dependency directories (remove the comment below to include it) 11 | # vendor/ 12 | .m7s 13 | fatal 14 | shutdown.sh 15 | dump 16 | *.db 17 | .devcontainer -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Monibuca 专业版 2 | 3 | 专业版是在开源版基础上集成了付费(闭源)插件,提供更多的功能和更好的性能。并且提供一个更加专业的可视化 UI 界面。 4 | 5 | > 开源版本地址: https://github.com/langhuihui/monibuca 6 | 7 | 专业版为付费提供,可以先下载体验版,或者在线体验,如果满意可以联系我们购买正式版。 8 | 9 | # 功能介绍 10 | - SEI,可以动态插入自定义数据,比如水印,字幕等。 11 | - LLHLS 协议支持。 12 | - 转码,可将 h264 和 h265 互转,音频 aac 和 g711 互转。可以转码成多个分辨率,支持硬件加速。 13 | - 加密,多种加密方式,可配合 jessibuca 进行解密播放 14 | - CDN,转推到阿里云、腾讯云等 CDN 服务商(可以和加密组合) 15 | - 语音对讲,实现公网语音对讲能力(需要购买硬件) 16 | - 级联功能,将多个 Monibuca 服务器级联,有多种级联方式。 17 | - 快速截图,比普通截图快 10 倍速度。 18 | - 高级录制,支持定时任务等。 19 | - GB28181 专业版,可实现 GB 协议的级联等。 20 | - onvif 专业版,支持 onvif 协议的 ptz 功能。 21 | - Admin,精美管理界面,可管理设备,多屏、大屏显示,历史回放,拉流转推等。 22 | 23 | # 体验版 24 | ## 在线体验 25 | [在线体验](https://test.monibuca.com/ui) 26 | 27 | ## 下载体验版 28 | 29 | - [linux x86](https://download.m7s.live/pro/m7s_linux_amd64.tar.gz) 30 | - [linux arm](https://download.m7s.live/pro/m7s_linux_arm64.tar.gz) 31 | - [windows](https://download.m7s.live/pro/m7s_windows_amd64.zip) 32 | - [mac x86](https://download.m7s.live/pro/m7s_darwin_amd64.tar.gz) 33 | - [mac arm](https://download.m7s.live/pro/m7s_darwin_arm64.tar.gz) 34 | 35 | Admin UI 界面访问地址:http://localhost:8080/ui 36 | 37 | ## Docker体验 38 | 39 | ```bash 40 | docker run -p 8080:8080 8443:8443 1935:1935 9000:9000 554:554 5060:5060/udp 58200-59200:58200-59200 44944:44944/udp monibuca/pro:latest 41 | ``` 42 | 43 | # 编译方式 44 | - 在购买了私有仓库的源码后,可以通过以下方式编译专业版。 45 | - 请按需引入已购买的私有仓库,也可以使用自己的私有仓库,编译方式参考下面的方式。 46 | ## 设置 GO 环境变量 47 | 私有仓库地址必须配置到 GOPRIVATE 中 48 | ```bash 49 | GOPRIVATE=m7s.live/plugin/voice/v4,m7s.live/plugin/snappro/v4,m7s.live/plugin/transcode/v4,m7s.live/plugin/cascade,m7s.live/plugin/cdn,m7s.live/plugin/crypto,m7s.live/plugin/admin,m7s.live/plugin/sei 50 | ``` 51 | 52 | ## 设置 git config 53 | 由于私有仓库无法通过 https 安装,因此需要使得 go get 通过 ssh 安装仓库代码。如果使用自己的私有仓库需要把下面的地址换成自己的仓库地址。请配置好 ssh 的秘钥,使得git clone 可以通过 ssh 进行。 54 | ```bash 55 | git config --global url."git@github.com:Monibuca/".insteadOf "https://github.com/Monibuca/" 56 | ``` 57 | 58 | # 联系我们 59 | 请访问官网 https://monibuca.com 60 | 扫描官网下方的二维码,(公众号,qq 群,qq 频道)联系我们。 61 | -------------------------------------------------------------------------------- /conf/client.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | # disableall: true 3 | loglevel: debug 4 | # http: 5 | # listenaddr: :8082 6 | cascadeclient: 7 | # enable: true 8 | publish: 9 | delayclosetimeout: 10s 10 | server: 119.45.116.24:44944 11 | pull: 12 | enableregexp: true 13 | pullonsub: 14 | .*: m7s://$0 15 | # hdl: 16 | # enable: true 17 | # preview: 18 | # enable: true 19 | #cdn: 20 | # target: 21 | # - 22 | # host: push.wuqianyi.vip -------------------------------------------------------------------------------- /conf/server.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | loglevel: debug 3 | disableall: true 4 | cascadeserver: 5 | quic: 6 | listenaddr: :44944 7 | sei: 8 | enable: true 9 | lazy: false 10 | rtmp: 11 | enable: true 12 | preview: 13 | enable: true 14 | hdl: 15 | enable: true 16 | ui: 17 | enable: true -------------------------------------------------------------------------------- /conf/transcode.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | loglevel: debug 3 | 4 | transcode: 5 | rules: 6 | - 7 | from: 8 | track: h264 9 | codec: h264 10 | to: 11 | # - 12 | # track: h265 13 | # codec: hevc 14 | - 15 | track: h264_360p 16 | codec: h264 17 | args: -s 640x360 18 | # args: -crf 24 -preset ultrafast -tune zerolatency -------------------------------------------------------------------------------- /config.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | loglevel: debug 3 | voice: 4 | enable: false 5 | hls: 6 | enable: false 7 | llhls: 8 | enable: false 9 | monitor: 10 | enable: false 11 | rtmp: 12 | # pull: 13 | # pullonstart: 14 | # live/test1: rtmp://xyrtmp.ys7.com/v3/openlive/E78664287_1_1?expire=1737625884&id=672136730161184768&t=7be286ec3a3f8b39510eedb1ca43471ba7afec49f611562a215c97fe2e216d4d&ev=100 15 | transcode: 16 | enable: false 17 | binpath: ffmpeg6.1 18 | rules: 19 | - prestart: true 20 | mode: lib 21 | logtofile: true 22 | decodeargs: -f flv 23 | to: 24 | - streampath: $0/trans 25 | args: -c:v hevc_videotoolbox 26 | crypto: # 加密设置 27 | encryptlen: 1024 # 加密字节长度 28 | filter: .* # 加密哪些流,正则表达式 -------------------------------------------------------------------------------- /ffmpeg.go: -------------------------------------------------------------------------------- 1 | //go:build !darwin 2 | package main 3 | 4 | import( 5 | _ "m7s.live/plugin/snappro/v4" 6 | _ "m7s.live/plugin/transcode/v4" 7 | ) -------------------------------------------------------------------------------- /ffmpeg_darwin.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | _ "m7s.live/plugin/snap/v4" 5 | ) 6 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module m7s.live/pro 2 | 3 | go 1.21 4 | 5 | toolchain go1.21.0 6 | 7 | require ( 8 | go.uber.org/zap v1.27.0 // indirect 9 | m7s.live/engine/v4 v4.15.2 10 | m7s.live/plugin/debug/v4 v4.0.3 11 | m7s.live/plugin/gb28181/v4 v4.4.5 12 | m7s.live/plugin/hdl/v4 v4.1.11 13 | m7s.live/plugin/hls/v4 v4.3.9 14 | m7s.live/plugin/hook/v4 v4.0.3 15 | m7s.live/plugin/jessica/v4 v4.2.1 16 | m7s.live/plugin/logrotate/v4 v4.0.6 17 | m7s.live/plugin/preview/v4 v4.1.5 18 | m7s.live/plugin/record/v4 v4.4.7 19 | m7s.live/plugin/room/v4 v4.1.1 20 | m7s.live/plugin/rtmp/v4 v4.3.1 21 | m7s.live/plugin/rtsp/v4 v4.3.5 22 | m7s.live/plugin/snap/v4 v4.0.8 23 | m7s.live/plugin/webrtc/v4 v4.2.6 24 | m7s.live/plugin/webtransport/v4 v4.0.11 25 | ) 26 | 27 | require ( 28 | m7s.live/plugin/admin/v4 v4.0.0-20240429030951-6bd8d8247818 29 | m7s.live/plugin/cascade/v4 v4.0.0-20240117013320-172ab6a69118 30 | m7s.live/plugin/cdn/v4 v4.0.0-20240116022239-6c4f38e3268d 31 | m7s.live/plugin/snappro/v4 v4.0.0-20240116022106-3396c29ec58f 32 | m7s.live/plugin/transcode/v4 v4.0.0-20240407071151-6c59969e0d72 33 | ) 34 | 35 | require ( 36 | m7s.live/plugin/ffmpeg/v4 v4.0.0-20240718010303-37929f0c094c 37 | m7s.live/plugin/sei/v4 v4.0.0-20240228013136-5e82ceda68ec 38 | m7s.live/plugin/voice/v4 v4.0.0-20240207081216-f35fd43bba64 39 | ) 40 | 41 | require ( 42 | github.com/deepch/vdk v0.0.27 // indirect 43 | github.com/dustin/go-humanize v1.0.1 // indirect 44 | github.com/dwdcth/ffmpeg-go v0.0.0-20240112132107-6c9a48149827 // indirect 45 | github.com/dwdcth/ffmpeg-go/v6 v6.0.0-20240308071944-b15b3a64b15a // indirect 46 | github.com/glebarez/go-sqlite v1.21.2 // indirect 47 | github.com/glebarez/sqlite v1.10.0 // indirect 48 | github.com/gorilla/mux v1.8.1 // indirect 49 | github.com/pion/ice/v2 v2.3.13 // indirect 50 | github.com/pion/srtp/v2 v2.0.18 // indirect 51 | github.com/pion/stun v0.6.1 // indirect 52 | github.com/pion/turn/v2 v2.1.3 // indirect 53 | github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect 54 | go.uber.org/mock v0.4.0 // indirect 55 | modernc.org/libc v1.22.5 // indirect 56 | modernc.org/mathutil v1.6.0 // indirect 57 | modernc.org/memory v1.5.0 // indirect 58 | modernc.org/sqlite v1.23.1 // indirect 59 | ) 60 | 61 | require ( 62 | github.com/Eyevinn/mp4ff v0.40.1 // indirect 63 | github.com/bluenviron/gortsplib/v4 v4.8.0 // indirect 64 | github.com/bluenviron/mediacommon v1.9.2 // indirect 65 | github.com/davecgh/go-spew v1.1.1 // indirect 66 | github.com/denisbrodbeck/machineid v1.0.1 // indirect 67 | github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca // indirect 68 | github.com/dwdcth/gomem v0.0.0-20230306045148-938b63115125 // indirect 69 | github.com/ebitengine/purego v0.7.0-alpha.3 // indirect 70 | github.com/ghettovoice/gosip v0.0.0-20230903092020-b059959586db // indirect 71 | github.com/go-ole/go-ole v1.3.0 // indirect 72 | github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect 73 | github.com/gobwas/httphead v0.1.0 // indirect 74 | github.com/gobwas/pool v0.2.1 // indirect 75 | github.com/gobwas/ws v1.3.1 // indirect 76 | github.com/goccy/go-json v0.10.2 // indirect 77 | github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7 // indirect 78 | github.com/google/uuid v1.6.0 // indirect 79 | github.com/gorilla/websocket v1.4.2 // indirect 80 | github.com/husanpao/ip v0.0.0-20220711082147-73160bb611a8 // indirect 81 | github.com/jinzhu/inflection v1.0.0 // indirect 82 | github.com/jinzhu/now v1.1.5 // indirect 83 | github.com/logrusorgru/aurora/v4 v4.0.0 // indirect 84 | github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a // indirect 85 | github.com/marten-seemann/qpack v0.3.0 // indirect 86 | github.com/mattn/go-colorable v0.1.13 // indirect 87 | github.com/mattn/go-isatty v0.0.19 // indirect 88 | github.com/mcuadros/go-defaults v1.2.0 // indirect 89 | github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect 90 | github.com/onsi/ginkgo/v2 v2.16.0 // indirect 91 | github.com/pion/datachannel v1.5.5 // indirect 92 | github.com/pion/dtls/v2 v2.2.7 // indirect 93 | github.com/pion/interceptor v0.1.25 // indirect 94 | github.com/pion/logging v0.2.2 // indirect 95 | github.com/pion/mdns v0.0.12 // indirect 96 | github.com/pion/randutil v0.1.0 // indirect 97 | github.com/pion/rtcp v1.2.14 // indirect 98 | github.com/pion/rtp v1.8.3 // indirect 99 | github.com/pion/sctp v1.8.12 // indirect 100 | github.com/pion/sdp/v3 v3.0.8 // indirect 101 | github.com/pion/transport/v2 v2.2.4 // indirect 102 | github.com/pion/webrtc/v3 v3.2.29 // indirect 103 | github.com/pkg/errors v0.9.1 // indirect 104 | github.com/pmezard/go-difflib v1.0.0 // indirect 105 | github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect 106 | github.com/q191201771/naza v0.30.48 // indirect 107 | github.com/quangngotan95/go-m3u8 v0.1.0 // indirect 108 | github.com/quic-go/qpack v0.4.0 // indirect 109 | github.com/quic-go/quic-go v0.41.0 // indirect 110 | github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b // indirect 111 | github.com/shirou/gopsutil/v3 v3.24.2 // indirect 112 | github.com/shoenig/go-m1cpu v0.1.6 // indirect 113 | github.com/sirupsen/logrus v1.9.3 // indirect 114 | github.com/stretchr/testify v1.9.0 // indirect 115 | github.com/tevino/abool v1.2.0 // indirect 116 | github.com/tklauser/go-sysconf v0.3.13 // indirect 117 | github.com/tklauser/numcpus v0.7.0 // indirect 118 | github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect 119 | github.com/yapingcat/gomedia v0.0.0-20240106100545-1b855b02fa0d // indirect 120 | github.com/yusufpapurcu/wmi v1.2.4 // indirect 121 | go.uber.org/multierr v1.11.0 // indirect 122 | golang.org/x/crypto v0.21.0 // indirect 123 | golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f // indirect 124 | golang.org/x/mod v0.16.0 // indirect 125 | golang.org/x/net v0.22.0 // indirect 126 | golang.org/x/sync v0.6.0 // indirect 127 | golang.org/x/sys v0.18.0 // indirect 128 | golang.org/x/term v0.18.0 // indirect 129 | golang.org/x/text v0.14.0 // indirect 130 | golang.org/x/tools v0.19.0 // indirect 131 | gopkg.in/yaml.v3 v3.0.1 // indirect 132 | gorm.io/gorm v1.25.5 // indirect 133 | m7s.live/plugin/crypto/v4 v4.0.0-20240314055458-4eb0f42558fe 134 | m7s.live/plugin/ps/v4 v4.1.5-0.20240228014109-36ba11968b92 // indirect 135 | ) 136 | 137 | replace github.com/ying32/dylib v0.0.0-20220227124818-fdf9ea9fbc96 => github.com/dwdcth/dylib v0.1.2 138 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/Eyevinn/mp4ff v0.40.1 h1:7q/AtT2CFrZuYiR4PWB3nqsbG0nhyP9QAiX8iTId/+M= 2 | github.com/Eyevinn/mp4ff v0.40.1/go.mod h1:w/6GSa5ghZ1VavzJK6McQ2/flx8mKtcrKDr11SsEweA= 3 | github.com/bluenviron/gortsplib/v4 v4.8.0 h1:nvFp6rHALcSep3G9uBFI0uogS9stVZLNq/92TzGZdQg= 4 | github.com/bluenviron/gortsplib/v4 v4.8.0/go.mod h1:+d+veuyvhvikUNp0GRQkk6fEbd/DtcXNidMRm7FQRaA= 5 | github.com/bluenviron/mediacommon v1.9.2 h1:EHcvoC5YMXRcFE010bTNf07ZiSlB/e/AdZyG7GsEYN0= 6 | github.com/bluenviron/mediacommon v1.9.2/go.mod h1:lt8V+wMyPw8C69HAqDWV5tsAwzN9u2Z+ca8B6C//+n0= 7 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 8 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 9 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 10 | github.com/deepch/vdk v0.0.27 h1:j/SHaTiZhA47wRpaue8NRp7P9xwOOO/lunxrDJBwcao= 11 | github.com/deepch/vdk v0.0.27/go.mod h1:JlgGyR2ld6+xOIHa7XAxJh+stSDBAkdNvIPkUIdIywk= 12 | github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ= 13 | github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI= 14 | github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca h1:cTTdXpkQ1aVbOOmHwdwtYuwUZcQtcMrleD1UXLWhAq8= 15 | github.com/discoviking/fsm v0.0.0-20150126104936-f4a273feecca/go.mod h1:W+3LQaEkN8qAwwcw0KC546sUEnX86GIT8CcMLZC4mG0= 16 | github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= 17 | github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= 18 | github.com/dwdcth/dylib v0.1.2/go.mod h1:U8pY0kQoaoxTbY4eMYNccSq03gd5ux+JVDLE0K7FVVg= 19 | github.com/dwdcth/ffmpeg-go v0.0.0-20240112132107-6c9a48149827 h1:uBlLJq2CAEqD9k3sPd4YoQtmdkizLfIkGPuCmUeE0Oc= 20 | github.com/dwdcth/ffmpeg-go v0.0.0-20240112132107-6c9a48149827/go.mod h1:Qi0XPbarxuxM2tpkE7fv2FFiozFcc0s9iRac6qkBU+E= 21 | github.com/dwdcth/ffmpeg-go/v6 v6.0.0-20240308071944-b15b3a64b15a h1:qrz+Wq5S1TuGKF4cPaYJCsDJ4H8bnTIMSWanvY+iFIo= 22 | github.com/dwdcth/ffmpeg-go/v6 v6.0.0-20240308071944-b15b3a64b15a/go.mod h1:9RMGv3BTdUh1AUb657iKUg7Oxdo1LjpKgrUT7euXC6s= 23 | github.com/dwdcth/gomem v0.0.0-20230306045148-938b63115125 h1:UuPotfk7sxpeFovQb27drfdQ+adwjRSTWZKssXyWbZo= 24 | github.com/dwdcth/gomem v0.0.0-20230306045148-938b63115125/go.mod h1:kTOrWrTCqT9P6l102F4zKXlaUw7yTCOE41+dkr0B8mw= 25 | github.com/ebitengine/purego v0.6.0-alpha.2.0.20231129131118-33b97fd6a58b/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= 26 | github.com/ebitengine/purego v0.7.0-alpha.3 h1:9hH1aneqLaM3sM+PMUgRJVsMe2SqfVjZtV3DEzxBDJU= 27 | github.com/ebitengine/purego v0.7.0-alpha.3/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= 28 | github.com/elliotchance/c2go v0.26.10/go.mod h1:+YFuwnXljn61f5sFHSZ66eH9KTjzzSU6QG1sZdg1l7s= 29 | github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= 30 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= 31 | github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= 32 | github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= 33 | github.com/ghettovoice/gosip v0.0.0-20230903092020-b059959586db h1:qelpTmyJjcdeMcFKl+iZm5L8EIdV99Qz/3MIUbAm/xk= 34 | github.com/ghettovoice/gosip v0.0.0-20230903092020-b059959586db/go.mod h1:rlD1yLOErWYohWTryG/2bTTpmzB79p52ntLA/uIFXeI= 35 | github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo= 36 | github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k= 37 | github.com/glebarez/sqlite v1.10.0 h1:u4gt8y7OND/cCei/NMHmfbLxF6xP2wgKcT/BJf2pYkc= 38 | github.com/glebarez/sqlite v1.10.0/go.mod h1:IJ+lfSOmiekhQsFTJRx/lHtGYmCdtAiTaf5wI9u5uHA= 39 | github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= 40 | github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= 41 | github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= 42 | github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= 43 | github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= 44 | github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= 45 | github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= 46 | github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= 47 | github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= 48 | github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= 49 | github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= 50 | github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= 51 | github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= 52 | github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= 53 | github.com/gobwas/ws v1.1.0-rc.1/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= 54 | github.com/gobwas/ws v1.3.1 h1:Qi34dfLMWJbiKaNbDVzM9x27nZBjmkaW6i4+Ku+pGVU= 55 | github.com/gobwas/ws v1.3.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= 56 | github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= 57 | github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= 58 | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 59 | github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= 60 | github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= 61 | github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 62 | github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= 63 | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= 64 | github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 65 | github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 66 | github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 67 | github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= 68 | github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= 69 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 70 | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 71 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 72 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 73 | github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 74 | github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 75 | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= 76 | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 77 | github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7 h1:y3N7Bm7Y9/CtpiVkw/ZWj6lSlDF3F74SfKwfTCer72Q= 78 | github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= 79 | github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 80 | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= 81 | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 82 | github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= 83 | github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= 84 | github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= 85 | github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 86 | github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= 87 | github.com/husanpao/ip v0.0.0-20220711082147-73160bb611a8 h1:4Jk58quTZmzJcTrLlbB5L1Q6qXu49EIjCReWxcBFWKo= 88 | github.com/husanpao/ip v0.0.0-20220711082147-73160bb611a8/go.mod h1:medl9/CfYoQlqAXtAARmMW5dAX2UOdwwkhaszYPk0AM= 89 | github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= 90 | github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= 91 | github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= 92 | github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= 93 | github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 94 | github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 95 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 96 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 97 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 98 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 99 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 100 | github.com/logrusorgru/aurora/v4 v4.0.0 h1:sRjfPpun/63iADiSvGGjgA1cAYegEWMPCJdUpJYn9JA= 101 | github.com/logrusorgru/aurora/v4 v4.0.0/go.mod h1:lP0iIa2nrnT/qoFXcOZSrZQpJ1o6n2CUf/hyHi2Q4ZQ= 102 | github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= 103 | github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= 104 | github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= 105 | github.com/marten-seemann/qpack v0.3.0 h1:UiWstOgT8+znlkDPOg2+3rIuYXJ2CnGDkGUXN6ki6hE= 106 | github.com/marten-seemann/qpack v0.3.0/go.mod h1:cGfKPBiP4a9EQdxCwEwI/GEeWAsjSekBvx/X8mh58+g= 107 | github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= 108 | github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= 109 | github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= 110 | github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= 111 | github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= 112 | github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= 113 | github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= 114 | github.com/mcuadros/go-defaults v1.2.0 h1:FODb8WSf0uGaY8elWJAkoLL0Ri6AlZ1bFlenk56oZtc= 115 | github.com/mcuadros/go-defaults v1.2.0/go.mod h1:WEZtHEVIGYVDqkKSWBdWKUVdRyKlMfulPaGDWIVeCWY= 116 | github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= 117 | github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= 118 | github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= 119 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= 120 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 121 | github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= 122 | github.com/nxadm/tail v1.4.5/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= 123 | github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= 124 | github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= 125 | github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= 126 | github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= 127 | github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= 128 | github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= 129 | github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= 130 | github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= 131 | github.com/onsi/ginkgo/v2 v2.16.0 h1:7q1w9frJDzninhXxjZd+Y/x54XNjG/UlRLIYPZafsPM= 132 | github.com/onsi/ginkgo/v2 v2.16.0/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= 133 | github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= 134 | github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= 135 | github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= 136 | github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= 137 | github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= 138 | github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= 139 | github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= 140 | github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew8= 141 | github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= 142 | github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= 143 | github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= 144 | github.com/pion/ice/v2 v2.3.13 h1:xOxP+4V9nSDlUaGFRf/LvAuGHDXRcjIdsbbXPK/w7c8= 145 | github.com/pion/ice/v2 v2.3.13/go.mod h1:KXJJcZK7E8WzrBEYnV4UtqEZsGeWfHxsNqhVcVvgjxw= 146 | github.com/pion/interceptor v0.1.25 h1:pwY9r7P6ToQ3+IF0bajN0xmk/fNw/suTgaTdlwTDmhc= 147 | github.com/pion/interceptor v0.1.25/go.mod h1:wkbPYAak5zKsfpVDYMtEfWEy8D4zL+rpxCxPImLOg3Y= 148 | github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= 149 | github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= 150 | github.com/pion/mdns v0.0.12 h1:CiMYlY+O0azojWDmxdNr7ADGrnZ+V6Ilfner+6mSVK8= 151 | github.com/pion/mdns v0.0.12/go.mod h1:VExJjv8to/6Wqm1FXK+Ii/Z9tsVk/F5sD/N70cnYFbk= 152 | github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= 153 | github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= 154 | github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I= 155 | github.com/pion/rtcp v1.2.12/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= 156 | github.com/pion/rtcp v1.2.14 h1:KCkGV3vJ+4DAJmvP0vaQShsb0xkRfWkO540Gy102KyE= 157 | github.com/pion/rtcp v1.2.14/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= 158 | github.com/pion/rtp v1.8.2/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= 159 | github.com/pion/rtp v1.8.3 h1:VEHxqzSVQxCkKDSHro5/4IUUG1ea+MFdqR2R3xSpNU8= 160 | github.com/pion/rtp v1.8.3/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= 161 | github.com/pion/sctp v1.8.5/go.mod h1:SUFFfDpViyKejTAdwD1d/HQsCu+V/40cCs2nZIvC3s0= 162 | github.com/pion/sctp v1.8.12 h1:2VX50pedElH+is6FI+OKyRTeN5oy4mrk2HjnGa3UCmY= 163 | github.com/pion/sctp v1.8.12/go.mod h1:cMLT45jqw3+jiJCrtHVwfQLnfR0MGZ4rgOJwUOIqLkI= 164 | github.com/pion/sdp/v3 v3.0.8 h1:yd/wkrS0nzXEAb+uwv1TL3SG/gzsTiXHVOtXtD7EKl0= 165 | github.com/pion/sdp/v3 v3.0.8/go.mod h1:B5xmvENq5IXJimIO4zfp6LAe1fD9N+kFv+V/1lOdz8M= 166 | github.com/pion/srtp/v2 v2.0.18 h1:vKpAXfawO9RtTRKZJbG4y0v1b11NZxQnxRl85kGuUlo= 167 | github.com/pion/srtp/v2 v2.0.18/go.mod h1:0KJQjA99A6/a0DOVTu1PhDSw0CXF2jTkqOoMg3ODqdA= 168 | github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= 169 | github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= 170 | github.com/pion/transport v0.14.1 h1:XSM6olwW+o8J4SCmOBb/BpwZypkHeyM0PGFCxNQBr40= 171 | github.com/pion/transport v0.14.1/go.mod h1:4tGmbk00NeYA3rUa9+n+dzCCoKkcy3YlYb99Jn2fNnI= 172 | github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= 173 | github.com/pion/transport/v2 v2.2.2/go.mod h1:OJg3ojoBJopjEeECq2yJdXH9YVrUJ1uQ++NjXLOUorc= 174 | github.com/pion/transport/v2 v2.2.3/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= 175 | github.com/pion/transport/v2 v2.2.4 h1:41JJK6DZQYSeVLxILA2+F4ZkKb4Xd/tFJZRFZQ9QAlo= 176 | github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= 177 | github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= 178 | github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= 179 | github.com/pion/turn/v2 v2.1.3 h1:pYxTVWG2gpC97opdRc5IGsQ1lJ9O/IlNhkzj7MMrGAA= 180 | github.com/pion/turn/v2 v2.1.3/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= 181 | github.com/pion/webrtc/v3 v3.2.29 h1:flXjxjlqpp3FjkpSSBKwv7UOfbUvan9+gFY6A5ZaAn4= 182 | github.com/pion/webrtc/v3 v3.2.29/go.mod h1:M+5YSvBDPAkHHRwGXlplIFBQI5mXm6Y4byns1OpiX68= 183 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 184 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 185 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 186 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 187 | github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= 188 | github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= 189 | github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= 190 | github.com/q191201771/naza v0.30.48 h1:lbYUaa7A15kJKYwOiU4AbFS1Zo8oQwppl2tLEbJTqnw= 191 | github.com/q191201771/naza v0.30.48/go.mod h1:n+dpJjQSh90PxBwxBNuifOwQttywvSIN5TkWSSYCeBk= 192 | github.com/quangngotan95/go-m3u8 v0.1.0 h1:8oseBjJn5IKHQKdRZwSNskkua3NLrRtlvXXtoVgBzMk= 193 | github.com/quangngotan95/go-m3u8 v0.1.0/go.mod h1:smzfWHlYpBATVNu1GapKLYiCtEo5JxridIgvvudZ+Wc= 194 | github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= 195 | github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= 196 | github.com/quic-go/quic-go v0.41.0 h1:aD8MmHfgqTURWNJy48IYFg2OnxwHT3JL7ahGs73lb4k= 197 | github.com/quic-go/quic-go v0.41.0/go.mod h1:qCkNjqczPEvgsOnxZ0eCD14lv+B2LHlFAB++CNOh9hA= 198 | github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= 199 | github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= 200 | github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b h1:gQZ0qzfKHQIybLANtM3mBXNUtOfsCFXeTsnBqCsx1KM= 201 | github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= 202 | github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= 203 | github.com/shirou/gopsutil/v3 v3.24.2 h1:kcR0erMbLg5/3LcInpw0X/rrPSqq4CDPyI6A6ZRC18Y= 204 | github.com/shirou/gopsutil/v3 v3.24.2/go.mod h1:tSg/594BcA+8UdQU2XcW803GWYgdtauFFPgJCJKZlVk= 205 | github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= 206 | github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= 207 | github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= 208 | github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= 209 | github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= 210 | github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= 211 | github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= 212 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 213 | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 214 | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 215 | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= 216 | github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= 217 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 218 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= 219 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 220 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 221 | github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 222 | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= 223 | github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= 224 | github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= 225 | github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= 226 | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= 227 | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 228 | github.com/tevino/abool v0.0.0-20170917061928-9b9efcf221b5/go.mod h1:f1SCnEOt6sc3fOJfPQDRDzHOtSXuTtnz0ImG9kPRDV0= 229 | github.com/tevino/abool v1.2.0 h1:heAkClL8H6w+mK5md9dzsuohKeXHUpY7Vw0ZCKW+huA= 230 | github.com/tevino/abool v1.2.0/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg= 231 | github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= 232 | github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= 233 | github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= 234 | github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= 235 | github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= 236 | github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= 237 | github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg= 238 | github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= 239 | github.com/yapingcat/gomedia v0.0.0-20240106100545-1b855b02fa0d h1:dbvo9izqyW38pHtBKU0OYa5s+F8Vk1wlYxZ6qbK3nMY= 240 | github.com/yapingcat/gomedia v0.0.0-20240106100545-1b855b02fa0d/go.mod h1:WSZ59bidJOO40JSJmLqlkBJrjZCtjbKKkygEMfzY/kc= 241 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 242 | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= 243 | github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= 244 | github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= 245 | go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= 246 | go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= 247 | go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= 248 | go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= 249 | go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= 250 | go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= 251 | go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= 252 | go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= 253 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 254 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 255 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 256 | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 257 | golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= 258 | golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= 259 | golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= 260 | golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= 261 | golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= 262 | golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= 263 | golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= 264 | golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= 265 | golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f h1:3CW0unweImhOzd5FmYuRsD4Y4oQFKZIjAnKbjV4WIrw= 266 | golang.org/x/exp v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= 267 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 268 | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 269 | golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 270 | golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 271 | golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 272 | golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= 273 | golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 274 | golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 275 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 276 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 277 | golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 278 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 279 | golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 280 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 281 | golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= 282 | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 283 | golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= 284 | golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= 285 | golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= 286 | golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= 287 | golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= 288 | golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= 289 | golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= 290 | golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= 291 | golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= 292 | golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= 293 | golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= 294 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 295 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 296 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 297 | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 298 | golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 299 | golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= 300 | golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 301 | golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= 302 | golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 303 | golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 304 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 305 | golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 306 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 307 | golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 308 | golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 309 | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 310 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 311 | golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 312 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 313 | golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 314 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 315 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 316 | golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 317 | golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 318 | golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 319 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 320 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 321 | golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 322 | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 323 | golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 324 | golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 325 | golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 326 | golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 327 | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 328 | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 329 | golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 330 | golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 331 | golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 332 | golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 333 | golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 334 | golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 335 | golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 336 | golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 337 | golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 338 | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= 339 | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 340 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 341 | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= 342 | golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= 343 | golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 344 | golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= 345 | golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= 346 | golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= 347 | golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= 348 | golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= 349 | golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= 350 | golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= 351 | golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= 352 | golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= 353 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 354 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 355 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 356 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 357 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 358 | golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 359 | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 360 | golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 361 | golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 362 | golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 363 | golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 364 | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= 365 | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 366 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 367 | golang.org/x/tools v0.0.0-20181109182537-4e34152f1676/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 368 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 369 | golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 370 | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 371 | golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= 372 | golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= 373 | golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= 374 | golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= 375 | golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= 376 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 377 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 378 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 379 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 380 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= 381 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= 382 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= 383 | google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= 384 | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 385 | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 386 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= 387 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= 388 | google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= 389 | google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= 390 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 391 | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 392 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= 393 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 394 | gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= 395 | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= 396 | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= 397 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 398 | gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 399 | gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 400 | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= 401 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 402 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 403 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 404 | gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls= 405 | gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= 406 | m7s.live/engine/v4 v4.15.2 h1:Uws658Ict2B8JojBG7fNmd2G2i63MlomsQ4npgNzF3g= 407 | m7s.live/engine/v4 v4.15.2/go.mod h1:uKxjmsjU1WARUNowEkP83BSrJMUjGwkJrX5nPi6DGmE= 408 | m7s.live/plugin/admin/v4 v4.0.0-20240429030951-6bd8d8247818 h1:5zZkc9pdlgcMyjNRUqaxk3mSCOMGSHVTVTynP/JS/5s= 409 | m7s.live/plugin/admin/v4 v4.0.0-20240429030951-6bd8d8247818/go.mod h1:vME5OglIgnne9XXn2EHG2yRDcV5nLxb6cSxjMBGG8nI= 410 | m7s.live/plugin/cascade/v4 v4.0.0-20240117013320-172ab6a69118 h1:WOwWYlNS7qYLLT9WkE5xH6pwqV0mymgUyrhg/zeD5L0= 411 | m7s.live/plugin/cascade/v4 v4.0.0-20240117013320-172ab6a69118/go.mod h1:Unm/VoXPP9m/yGbrFGUztPgAtzbTPHEPTUvw21ODUmc= 412 | m7s.live/plugin/cdn/v4 v4.0.0-20240116022239-6c4f38e3268d h1:uchzv5qhpQhnxP+TGoefF63Ugn5kNNlFKyDvYNr0bMo= 413 | m7s.live/plugin/cdn/v4 v4.0.0-20240116022239-6c4f38e3268d/go.mod h1:9yrvhvrvKfKhcRNwy3uunjCCk7g4toZapVgMJa7XVyo= 414 | m7s.live/plugin/crypto/v4 v4.0.0-20240314055458-4eb0f42558fe h1:TeRiFXi4UckdKhW+fqblYSucARwg1zWIS7Xx6/bAjJY= 415 | m7s.live/plugin/crypto/v4 v4.0.0-20240314055458-4eb0f42558fe/go.mod h1:q+c27KYvKpkiF9rgPj2D35iHctRcx8ZSO1A1IoXAAW8= 416 | m7s.live/plugin/debug/v4 v4.0.3 h1:lwqKkySXhu47kon/YeF+h5UXXac6c9seb2L6Y8X5ktM= 417 | m7s.live/plugin/debug/v4 v4.0.3/go.mod h1:muzikl1KrHfbT/+2aHzKg9qDGfpArViQAtpcfFrST88= 418 | m7s.live/plugin/ffmpeg/v4 v4.0.0-20240314060623-e595a435cc49 h1:mERz32k3QMJcgXtJ2PkUpCWhIGr2FtxbcQ8hlcHof5k= 419 | m7s.live/plugin/ffmpeg/v4 v4.0.0-20240314060623-e595a435cc49/go.mod h1:DdcQ3SgUUYE2dAaiUGTSPTlRiPylTOzmXpChvZ+H+vY= 420 | m7s.live/plugin/ffmpeg/v4 v4.0.0-20240718010303-37929f0c094c h1:t2DV3ND537h9eK4H3Rc5MCOYwRnW+IgV8vNdYSAxd3Y= 421 | m7s.live/plugin/ffmpeg/v4 v4.0.0-20240718010303-37929f0c094c/go.mod h1:DdcQ3SgUUYE2dAaiUGTSPTlRiPylTOzmXpChvZ+H+vY= 422 | m7s.live/plugin/gb28181/v4 v4.4.5 h1:2bsOhKaA/nua36kmeqMVx5l2Th+b6XFVxd1IVRVEE0A= 423 | m7s.live/plugin/gb28181/v4 v4.4.5/go.mod h1:s016EyfJmz3bqJSCw35dD6mhIhjMKpDqTNnSl4Gvm+Q= 424 | m7s.live/plugin/hdl/v4 v4.1.11 h1:HL/nVE9CB2zjjVXrQFlaJPodM8hRXj2xuGBMgv7hn6w= 425 | m7s.live/plugin/hdl/v4 v4.1.11/go.mod h1:wTkYejcTlJzBrdVZnwTYCwsKjDKt5ULTW6J0SuTH6cg= 426 | m7s.live/plugin/hls/v4 v4.3.9 h1:j6n28Xd/aB7x6rdmgmnUbTzCQHAHAJQ4DUFXF/220m8= 427 | m7s.live/plugin/hls/v4 v4.3.9/go.mod h1:TDzIrFhVLsrACy/n0fSSozQQ1TauyFKVwAHmH69fgJk= 428 | m7s.live/plugin/hook/v4 v4.0.3 h1:SDIUQ0lmq9bHfpIcHrvPqwGPad4z0wyI/lIvuYXi/RM= 429 | m7s.live/plugin/hook/v4 v4.0.3/go.mod h1:bX151KQljdzLPAD7sqae4W+bGjTrQ+9i24/Svs2wWDk= 430 | m7s.live/plugin/jessica/v4 v4.2.1 h1:GbQ8V2ElHT7Q/0y1cyXCzw/DvTnqkpP1kCOpVd+0d6Y= 431 | m7s.live/plugin/jessica/v4 v4.2.1/go.mod h1:62tI6vio/PkJhuIbkrIKZm9jAEHwkzXe4Uk1EJaK5iQ= 432 | m7s.live/plugin/logrotate/v4 v4.0.6 h1:BIuwLzIdXhPNnhplMXIxBn/zQ8JzCsCs8/DWk6LDO9c= 433 | m7s.live/plugin/logrotate/v4 v4.0.6/go.mod h1:a8hIV59GjpQDE+Ip790CU7yOHaG4+Iweci0sLvo43FU= 434 | m7s.live/plugin/preview/v4 v4.1.5 h1:/Rrov9W/ZNmbr71FKu0QUDlym8gwVzhX1TIN8DUmDms= 435 | m7s.live/plugin/preview/v4 v4.1.5/go.mod h1:iYhWqFbTvTNDFplbTOrE5X9M6ED7gCKkKMuM5QmBocg= 436 | m7s.live/plugin/ps/v4 v4.1.5-0.20240228014109-36ba11968b92 h1:0MWqnsyQ69RKTCogkrpCajnGJZrW2KIaUxHxYigTyzo= 437 | m7s.live/plugin/ps/v4 v4.1.5-0.20240228014109-36ba11968b92/go.mod h1:a4Z6Bd8Fhclz4uFg2Bct+pYFGzUHe9SLrEq2PDl4fSY= 438 | m7s.live/plugin/record/v4 v4.4.7 h1:rNdu/7WzgTBmzRXFgHlpeKkBmnfRuWhC3r4WmDc57g0= 439 | m7s.live/plugin/record/v4 v4.4.7/go.mod h1:f6SwwCd9y/l96Qdk8SrxnG7gfRZpNudU7umYsGEfTkI= 440 | m7s.live/plugin/room/v4 v4.1.1 h1:6bPQrvLkCt5C3iak/2ipV59hSkPNfUaptzRuEbfJi+8= 441 | m7s.live/plugin/room/v4 v4.1.1/go.mod h1:k5UKhDuTDXQCjul7GMbnyWXTHhCK59VbGY/UeKJ9Jqs= 442 | m7s.live/plugin/rtmp/v4 v4.3.1 h1:CksvXkCkzKYCY8zQHfs5M7rS3BEAigiN96ljjoUVReE= 443 | m7s.live/plugin/rtmp/v4 v4.3.1/go.mod h1:mV+e240wv/ehJKZSqoMmNm9hkjt+9IFmS5zgPxxm4NE= 444 | m7s.live/plugin/rtsp/v4 v4.3.5 h1:euz18dQegvx+9V/fj5j2KD7/XrAaFCtvI6NW9hca34w= 445 | m7s.live/plugin/rtsp/v4 v4.3.5/go.mod h1:SHzMp7cqaJlSUDxKAAUYj0gu58nxtxn1/lQnLiH2L6Y= 446 | m7s.live/plugin/sei/v4 v4.0.0-20240228013136-5e82ceda68ec h1:SQZpEP/JWZxF/nlJdwmKXTzoIyuNoP4/grv2tU/pc0s= 447 | m7s.live/plugin/sei/v4 v4.0.0-20240228013136-5e82ceda68ec/go.mod h1:DUZMys4gjZkqsdXQhgpZrnzr9d+m6UmgM8dXjJfqMls= 448 | m7s.live/plugin/snap/v4 v4.0.8 h1:65t4Wd9wiBdD1/ucCSVma5/LhEg/6XbC4yqf95uvCxI= 449 | m7s.live/plugin/snap/v4 v4.0.8/go.mod h1:gVOKn5v2wpKQrklES+nQsaMo6T6ZjfEME7Nz3G51D74= 450 | m7s.live/plugin/snappro/v4 v4.0.0-20240116022106-3396c29ec58f h1:LDhcpPkI2e8zhazwMYrcTl7TjlNcNXuRB4yghaVpgIc= 451 | m7s.live/plugin/snappro/v4 v4.0.0-20240116022106-3396c29ec58f/go.mod h1:AhPwD5JD+ZzTA6ectV8MCjL/KtK/GkthLwIINohLU2g= 452 | m7s.live/plugin/transcode/v4 v4.0.0-20240407071151-6c59969e0d72 h1:jreIOkPnsmKNsrO9H9l1ab+HGHbAgOBlk40wQxtaygc= 453 | m7s.live/plugin/transcode/v4 v4.0.0-20240407071151-6c59969e0d72/go.mod h1:vp/tm/F35dfxRcfxQoJ5YFiy6XnknyXp8NtPi4v5mpI= 454 | m7s.live/plugin/voice/v4 v4.0.0-20240207081216-f35fd43bba64 h1:MzTKje72PDXYx69sfuiqZB2ipkyurAFKAmZ501Scs+k= 455 | m7s.live/plugin/voice/v4 v4.0.0-20240207081216-f35fd43bba64/go.mod h1:syeTwBSxA0mh+zDtsVH0546TjUa3e4MsgGLY951CoAE= 456 | m7s.live/plugin/webrtc/v4 v4.2.6 h1:/sX9Z9PIXgteL/byS2CMnWuozGnpZXTT8KMp/WQObIQ= 457 | m7s.live/plugin/webrtc/v4 v4.2.6/go.mod h1:Msn2PeL9WJXJbtty+uXoBLcUSkQSRsi4sbEHE9neJHE= 458 | m7s.live/plugin/webtransport/v4 v4.0.11 h1:V1Z7P1tgFojXynFuSWCapVB39+0t5eqmu04+v0IVSME= 459 | m7s.live/plugin/webtransport/v4 v4.0.11/go.mod h1:YvVYfySR9nxgTMLgvh86ylrP4VE59QLq5iAuDwK0tuI= 460 | modernc.org/cc/v4 v4.18.0/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= 461 | modernc.org/ccorpus2 v1.5.1/go.mod h1:Wifvo4Q/qS/h1aRoC2TffcHsnxwTikmi1AuLANuucJQ= 462 | modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= 463 | modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= 464 | modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= 465 | modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= 466 | modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= 467 | modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= 468 | modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= 469 | modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= 470 | modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= 471 | modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= 472 | modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= 473 | modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= 474 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | /* 4 | ███ ███ ██████ ███ ██ 👑 ██████ ██ ██ ██████ █████ 5 | ████ ████ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ 6 | ██ ████ ██ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ███████ 7 | ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ 8 | ██ ██ ██████ ██ ████ ██ ██████ ██████ ██████ ██ ██ 9 | 10 | The live stream server for Go 11 | (c) dexter 2019-present 12 | */ 13 | 14 | import ( 15 | "context" 16 | "flag" 17 | "fmt" 18 | "os" 19 | "time" 20 | 21 | "m7s.live/engine/v4" 22 | "m7s.live/engine/v4/util" 23 | _ "m7s.live/plugin/admin/v4" 24 | _ "m7s.live/plugin/cascade/v4" 25 | _ "m7s.live/plugin/cdn/v4" 26 | _ "m7s.live/plugin/crypto/v4" 27 | _ "m7s.live/plugin/debug/v4" 28 | _ "m7s.live/plugin/ffmpeg/v4" 29 | _ "m7s.live/plugin/gb28181/v4" 30 | _ "m7s.live/plugin/hdl/v4" 31 | _ "m7s.live/plugin/hls/v4" 32 | _ "m7s.live/plugin/hook/v4" 33 | _ "m7s.live/plugin/jessica/v4" 34 | _ "m7s.live/plugin/logrotate/v4" 35 | _ "m7s.live/plugin/preview/v4" 36 | _ "m7s.live/plugin/record/v4" 37 | _ "m7s.live/plugin/room/v4" 38 | _ "m7s.live/plugin/rtmp/v4" 39 | _ "m7s.live/plugin/rtsp/v4" 40 | _ "m7s.live/plugin/sei/v4" 41 | _ "m7s.live/plugin/transcode/v4" 42 | _ "m7s.live/plugin/voice/v4" 43 | _ "m7s.live/plugin/webrtc/v4" 44 | _ "m7s.live/plugin/webtransport/v4" 45 | ) 46 | 47 | var ( 48 | version = "dev" 49 | ) 50 | 51 | func main() { 52 | if len(os.Args) > 1 && os.Args[1] == "version" { 53 | fmt.Print(version) 54 | return 55 | } 56 | fmt.Println("start monibuca pro version:", version) 57 | conf := flag.String("c", "config.yaml", "config file") 58 | flag.Parse() 59 | _ctx := context.WithValue(context.Background(), "version", version) 60 | ctx, cancel := context.WithTimeout(_ctx, time.Hour) 61 | // ctx, cancel := context.WithDeadline(_ctx, time.Date(2025, 3, 1, 0, 0, 0, 0, time.UTC)) 62 | // ctx, cancel := context.WithCancel(_ctx) 63 | go util.WaitTerm(cancel) 64 | engine.Run(ctx, *conf) 65 | } 66 | --------------------------------------------------------------------------------