langhuihui / monibuca

🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server
https://monibuca.com
MIT License
1.47k stars 242 forks source link

推流十几个小时后,m7s崩溃退出 #109

Closed zhang852774731 closed 3 months ago

zhang852774731 commented 9 months ago

latest.log 一路流,推了有14个小时左右,exe就崩溃了。这是崩溃的日志。

zhang852774731 commented 9 months ago

版本是v4.7.1-beta10271805

langhuihui commented 9 months ago

看错误是内存不足,可能有内存泄露,你先用最新版测试一下,并观察一下内存情况,另外看一下是否启用 hls,那个比较消耗内存

zhang852774731 commented 9 months ago

好的,我先试下最新版的。hls插件是启用了

zhang852774731 commented 9 months ago

latest.log 试了最新版4.7.3,还是有同样的问题

langhuihui commented 9 months ago

观察一下内存上涨情况,禁用 hls 插件试试

zhang852774731 commented 9 months ago

2023-12-19T19.log Snipaste_2023-12-20_09-36-53 以及把hls关闭了,看情况还是有内存泄漏的问题

langhuihui commented 9 months ago

https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&appChannel=share&inviteCode=20OR5lUb9zw&contentID=1si1pq&businessType=2&from=181174&shareSource=5&biz=ka

zhang852774731 commented 9 months ago

pprof001

langhuihui commented 9 months ago

你需要等内存大的时候在获取这个

zhang852774731 commented 9 months ago

Snipaste_2023-12-22_14-06-38 pprof003

zhang852774731 commented 9 months ago

我发现,如果我在推流的时候,使用GPU进行编解码,m7s是没有内存泄漏的问题。如果我使用CPU进行编解码,就会有内存泄漏

langhuihui commented 9 months ago

从内存图来看,没有泄露,但是从资源管理器看确实有泄露

langhuihui commented 9 months ago

理论上和用什么编码应该没有关系的,你 CPU 推流是怎么推的?

zhang852774731 commented 9 months ago

我这边使用javacv通过代码推的流

langhuihui commented 9 months ago

通过什么协议呢?

zhang852774731 commented 9 months ago

rtmp

langhuihui commented 9 months ago

这样,你配置一下 global 下 disableall: true 然后 rtmp 下 enable: true ,然后只推流看看

zhang852774731 commented 9 months ago

试了,同样的问题。 我这边的推流逻辑是这样的。有一个文件列表,推流程序是循环读取文件列表,第一个文件推完,推第二个。第二个推完,推第三个。如果列表里只有三个文件,第三个推完,又推第一个。

langhuihui commented 9 months ago

很难判断出是哪里泄露了,但是范围就是 rtmp 协议部分,由于你这个不是 ffmpeg 或者 obs 的流,我也不知道你的数据哪里有问题

zhang852774731 commented 9 months ago

需不需要把java的推流代码给到你们

langhuihui commented 3 months ago

用最新的 beta 版本试试