From dd01ce0bc48bfcfc7aa68cf7c5062789ee3ebb92 Mon Sep 17 00:00:00 2001 From: langhuihui <178529795@qq.com> Date: Thu, 25 May 2023 20:30:31 +0800 Subject: [PATCH] 1. Modifying the engine Streams global variable to sync.Map increases stability and performance 2. Add record plugin to record raw audio data function 3. Fix security issues where API reading log files may access files outside of the log directory 4. Fix noise issue during GB streaming sound playback 5. Fix a memory leak 6. The GB28181 plugin combines a PR for API query of video recordings and directly returns data, no longer through Channel data 7. GB28181 plugin list returns no more nulls 8. On demand pull and push trigger logic code optimization 9. Debug plugin adds HTTP configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、引擎Streams全局变量修改为sync.Map增加了稳定性和性能 2、录制插件增加录制裸音频数据功能 3、修复API读取日志文件可能访问到日志目录外的安全问题 4、修复GB流声音播放有噪声问题 5、修复一处内存泄漏 6、GB28181插件合并一个PR用于API查询录像直接返回数据,不再通过Channel数据中返回 7、GB28181插件list返回不再出现null 8、按需拉流和推流触发逻辑代码优化 9、debug插件增加HTTP配置 --- go.mod | 24 ++++++++++++------------ go.sum | 49 +++++++++++++++++++++++++------------------------ 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/go.mod b/go.mod index 8c7d1c0..dfd467d 100644 --- a/go.mod +++ b/go.mod @@ -3,22 +3,22 @@ module monibuca go 1.19 require ( - m7s.live/engine/v4 v4.12.10 - m7s.live/plugin/debug/v4 v4.0.0-20220506113031-34f3a736ceb2 + m7s.live/engine/v4 v4.13.0 + m7s.live/plugin/debug/v4 v4.0.0 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/gb28181/v4 v4.3.3 + m7s.live/plugin/hdl/v4 v4.1.6 + m7s.live/plugin/hls/v4 v4.2.8 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/logrotate/v4 v4.0.4 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/record/v4 v4.3.4 + m7s.live/plugin/room/v4 v4.0.9 + m7s.live/plugin/rtmp/v4 v4.2.0 + m7s.live/plugin/rtsp/v4 v4.2.2 m7s.live/plugin/snap/v4 v4.0.6 m7s.live/plugin/webrtc/v4 v4.1.5 m7s.live/plugin/webtransport/v4 v4.0.4 @@ -37,7 +37,7 @@ require ( github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect github.com/gobwas/httphead v0.1.0 // indirect github.com/gobwas/pool v0.2.1 // indirect - github.com/gobwas/ws v1.1.0 // indirect + github.com/gobwas/ws v1.2.1 // indirect github.com/golang/mock v1.6.0 // indirect github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect github.com/google/uuid v1.3.0 // indirect @@ -97,5 +97,5 @@ require ( golang.org/x/text v0.9.0 // indirect golang.org/x/tools v0.6.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - m7s.live/plugin/ps/v4 v4.0.2 // indirect + m7s.live/plugin/ps/v4 v4.0.3 // indirect ) diff --git a/go.sum b/go.sum index ba1f524..00258f6 100644 --- a/go.sum +++ b/go.sum @@ -43,8 +43,8 @@ github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u1 github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.1.0-rc.1/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= -github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= -github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= +github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -299,6 +299,7 @@ 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/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.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= @@ -356,40 +357,40 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -m7s.live/engine/v4 v4.12.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/engine/v4 v4.13.0 h1:zvzCUfZ8Ma4iTmLq9n0UAo9VLCU/b3oB+nbatUOgKAI= +m7s.live/engine/v4 v4.13.0/go.mod h1:LoALBfV5rmsz5TJQr6cmLxM33mfUE5BKBq/sMtXOVlc= +m7s.live/plugin/debug/v4 v4.0.0 h1:yVFI/XB/EwR9NyihwvTIC/tocibPdE/NQZjDnOtRq/M= +m7s.live/plugin/debug/v4 v4.0.0/go.mod h1:A/C1ViacCOK7EPeeCfiwlUrC2TUtRdEqzrR0Yd9b1KQ= 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/gb28181/v4 v4.3.3 h1:fc9XH+3DE8p+BIbTXcHmTA60WLp6BO0Ud928/OtsLng= +m7s.live/plugin/gb28181/v4 v4.3.3/go.mod h1:8OT8exFBJX+Er6V0rrFwrZSG26mnGvE5vPNNYQduLHc= +m7s.live/plugin/hdl/v4 v4.1.6 h1:vgc+9MJ0eZcnUF1ZdpZa029UKlFDB2Tz3zZvemMW7BY= +m7s.live/plugin/hdl/v4 v4.1.6/go.mod h1:tUcbO5AZLj4Kg5UILxhYrDdSHnNNWPMQxN/+NFQuaTE= +m7s.live/plugin/hls/v4 v4.2.8 h1:ML5qQx10c2WdPj6mCdj2AOVN2BtYjqHjkKYAoq2s/5A= +m7s.live/plugin/hls/v4 v4.2.8/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/logrotate/v4 v4.0.4 h1:y3X+aJ/FSftWMa4yDWF+662xfV5lrEaOZofV8SGQLTc= +m7s.live/plugin/logrotate/v4 v4.0.4/go.mod h1:a8hIV59GjpQDE+Ip790CU7yOHaG4+Iweci0sLvo43FU= 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/ps/v4 v4.0.3 h1:oZraPEyDn6WErTRskx2Rs5aloqjGNS0p1M4CphDqKZA= +m7s.live/plugin/ps/v4 v4.0.3/go.mod h1:H6/wg14Zcg0Jpmw3e0XYq4mweotufmcpgpLybwF0kgo= +m7s.live/plugin/record/v4 v4.3.4 h1:KQhrAn2g1IwBL4alqyAMBGg40ivGgpcSGADMfG3MD+4= +m7s.live/plugin/record/v4 v4.3.4/go.mod h1:8TWcAJAjMcsHOiuT/SVCxdknSmlXH93iZowkQLOfFU0= +m7s.live/plugin/room/v4 v4.0.9 h1:1kscEupO4NLYkNZI8ayJ8tu9qDuENxnDhgGZ9MtRcSk= +m7s.live/plugin/room/v4 v4.0.9/go.mod h1:rmngA5yNAJpjsT1+jt6kvbMtT7gjLM7q/gwPq3vaQDY= +m7s.live/plugin/rtmp/v4 v4.2.0 h1:kCh6J3BrH2zm+Lu1DIoshp9qjtkYyzeo9zqVcVIJhd8= +m7s.live/plugin/rtmp/v4 v4.2.0/go.mod h1:7+3oO93TIsSlASnv482PCE3CXhYqyRIAwA8FllnOTgE= +m7s.live/plugin/rtsp/v4 v4.2.2 h1:qNlouWgMUvXPiAdIbQK2AxjzFo/T0ElkGnReXJNQDnA= +m7s.live/plugin/rtsp/v4 v4.2.2/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=