Firefly开源社区

标题: ffmedia报错Segmentation fault (core dumped) [打印本页]

作者: sky-brid    时间: 2023-7-11 09:31
标题: ffmedia报错Segmentation fault (core dumped)
运行官方的ffmedia的demo_opencv.py,当长时间运行时,会报错Segmentation fault (core dumped),无其他任何报错信息就单独一条Segmentation fault (core dumped),然后程序停止;ffmedia最近2星期前才升级到v2.0.1,请问后续还有升级计划吗,后续升级会尝试解决上述问题吗
tchip_askquestions

error.txt

32 Bytes, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1


作者: dengkx    时间: 2023-7-12 09:24
ffmedia会持续更新支持;请具体描述一下复现方法,比如使用demo的命令是什么?
作者: sky-brid    时间: 2023-7-12 13:44
dengkx 发表于 2023-7-12 09:24
ffmedia会持续更新支持;请具体描述一下复现方法,比如使用demo的命令是什么?

有基于demo进行过一点改动,在外面包了一层,可以开启多个demo获取不同的rtsp流,今天测试的时候出现新的报错信息:
Thread 0x0000007f3d4f7160 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 306 in wait
  File "/usr/lib/python3.8/threading.py", line 558 in wait
  File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/blocking.py", line 30 in _main_loop
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007f78eb0160 (most recent call first):
  File "/usr/local/Ai_platform/rtsp_fun/load_stream_fun.py", line 45 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007f717fa160 (most recent call first):
  File "/usr/local/Ai_platform/rtsp_fun/load_stream_vpu.py", line 106 in RtspLoadVPU
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007f71ffb160 (most recent call first):
  File "/usr/local/Ai_platform/pred_fun/predict_fun/yolo_detect.py", line 110 in detect
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007fb2730160 (most recent call first):
  File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 1150 in _loop
  File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 1756 in loop_forever
  File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 3591 in _thread_main
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007fb1f2f160 (most recent call first):
  File "/usr/local/Ai_platform/utils/sys_info.py", line 113 in network_speed
  File "/usr/local/Ai_platform/utils/sys_info.py", line 28 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007fb172e160 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 306 in wait
  File "/usr/lib/python3.8/threading.py", line 558 in wait
  File "/usr/local/lib/python3.8/dist-packages/apscheduler/schedulers/blocking.py", line 30 in _main_loop
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007faef2d160 (most recent call first):
  File "/usr/local/Ai_platform/utils/warn_file_deal.py", line 52 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x0000007fb9f48010 (most recent call first):
  File "/usr/lib/python3.8/selectors.py", line 415 in select
  File "/usr/lib/python3.8/socketserver.py", line 232 in serve_forever
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 741 in serve_forever
  File "/usr/local/lib/python3.8/dist-packages/werkzeug/serving.py", line 1098 in run_simple
  File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1188 in run
  File "/usr/local/Ai_platform/runserver.py", line 62 in <module>
Segmentation fault (core dumped)
作者: dengkx    时间: 2023-7-12 15:16
啊这?能否给个复现环境或者复现方法,我这边能复现出来就容易解决
作者: sky-brid    时间: 2023-7-13 11:45
dengkx 发表于 2023-7-12 15:16
啊这?能否给个复现环境或者复现方法,我这边能复现出来就容易解决

我这边上传了一个我改动过的demo,整体改动应该也不大,请大佬帮忙看看一下长时间运行会不会报上面的错,运行环境应该只需要OpenCV和ffmedia,给一个runserver.py里面的source_rtsp的可用rtsp地址,运行runserver应该就可以了。提取码:pjof
作者: sky-brid    时间: 2023-7-13 11:52
Fatal Python error: Segmentation fault

Thread 0x0000007f62ae8160 (most recent call first):
  File "/usr/local/fSegmentation fault (core dumped)

作者: dengkx    时间: 2023-7-13 16:47
sky-brid 发表于 2023-7-13 11:45
我这边上传了一个我改动过的demo,整体改动应该也不大,请大佬帮忙看看一下长时间运行会不会报上面的错, ...

你那边大概运行多久会出问题?你们的rtsp是有多流吗(比如有音频流及字幕流)?
如果你们这样同步处理的话,可以不用导出rga模块buf,在回调中直接锁住等待和通知处理线程,等处理线程处理完成后,再通知回调函数退出回调,只要不退出回调,那么回调的那块buff就归你使用,当回调退出,模块会回收并使用该buf;
导出buf是从模块的内存池抽离,模块不再管理该buf,是为了支持异步处理buf,
作者: sky-brid    时间: 2023-7-14 12:02
dengkx 发表于 2023-7-13 16:47
你那边大概运行多久会出问题?你们的rtsp是有多流吗(比如有音频流及字幕流)?
如果你们这样同步处理的 ...

时间说不准,有时候能运行好十几小时,有时候2.3小时就没了,我用的rtsp流是直接从摄像头获取的,带音频的;我研究一下安装你给的建议试试看
作者: dengkx    时间: 2023-7-14 16:24
sky-brid 发表于 2023-7-14 12:02
时间说不准,有时候能运行好十几小时,有时候2.3小时就没了,我用的rtsp流是直接从摄像头获取的,带音频 ...

我这边海康摄像机一个流测试一晚上没出现问题,可能是多流导致的;前阵子修复了多流导致的问题,可能修复了他,下个星期更新一版。
作者: sky-brid    时间: 2023-7-17 09:26
dengkx 发表于 2023-7-14 16:24
我这边海康摄像机一个流测试一晚上没出现问题,可能是多流导致的;前阵子修复了多流导致的问题,可能修复 ...

我这边现在测试下来也没问题了,还有一个问题想请教一下,在前面还没改之前,我使用gunicron异步workers工作模式启动时,不知道是回调函数还是哪里总是出问题,无法获取到图像,换成同步worker就没有问题。
作者: sky-brid    时间: 2023-7-18 17:36
大佬,我这边又发现一个新问题,不知道是不是我操作的不对,我用官方的demo_opencv.py读取MP4文件(无音频),然后报错成MP4文件,发现保存下来的MP4文件无法打开,提升文件损坏的,然后我看了一下保存使用的bufferedwriter,这个怎么在生成MP4文件的时候指定h264编码?
作者: dengkx    时间: 2023-7-19 11:53
sky-brid 发表于 2023-7-18 17:36
大佬,我这边又发现一个新问题,不知道是不是我操作的不对,我用官方的demo_opencv.py读取MP4文件(无音频 ...

给一下使用命令和出问题的log
作者: dengkx    时间: 2023-7-19 11:56
sky-brid 发表于 2023-7-18 17:36
大佬,我这边又发现一个新问题,不知道是不是我操作的不对,我用官方的demo_opencv.py读取MP4文件(无音频 ...

参考demo.py,  -e 0 是 h264 , -e 1 是 h265, -m 后面加保存文件名字,根据后缀来封装成裸流mp4,mkv等文件
作者: sky-brid    时间: 2023-7-26 10:09
dengkx 发表于 2023-7-13 16:47
你那边大概运行多久会出问题?你们的rtsp是有多流吗(比如有音频流及字幕流)?
如果你们这样同步处理的 ...

请问一下demo_opencv.py中的cv2_call_back函数中的VideoBuffer是不是ff_pymedia.MediaBuffer,然后怎么获取到ff_pymedia.MediaBuffer,感谢回复
作者: dengkx    时间: 2023-7-26 17:19
sky-brid 发表于 2023-7-26 10:09
请问一下demo_opencv.py中的cv2_call_back函数中的VideoBuffer是不是ff_pymedia.MediaBuffer,然后怎么获 ...

默认都是以Mediabuffer传输的,cv2_call_back函数中的VideoBuffer是ff_pymedia.MediaBuffer,如果想将ff_pymedia.MediaBuffer转成ff_pymedia.VideoBuffer 参考demo.py:
vb = VideoBuffer.from_base(mb)


作者: sky-brid    时间: 2023-7-26 20:29
dengkx 发表于 2023-7-26 17:19
默认都是以Mediabuffer传输的,cv2_call_back函数中的VideoBuffer是ff_pymedia.MediaBuffer,如果想将ff_ ...

INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
在运行过程中,常常会看到大量的这种info,有时还有error信息输出,但是现在Python代码中没有找到接口可以获取到这些信息,请问一下现在Python有方法能获取到这些输出信息吗
作者: dengkx    时间: 2023-7-27 16:20
sky-brid 发表于 2023-7-26 20:29
INFO: 10MppDecoder: getTimeoutSample: 0x7f3dee39c0 frame info changed 0 error 1 discard 0
INFO: 1 ...

这些信息一般不用理会,你传递进去的图像数据有问题,解码不出来就会打印
作者: sky-brid    时间: 2023-7-27 16:37
dengkx 发表于 2023-7-27 16:20
这些信息一般不用理会,你传递进去的图像数据有问题,解码不出来就会打印

好的,确实一般这种信息可以不理会,但是我现在碰到一个问题,比如当demo成功获取rtsp流,运行一段时间后,rtsp因为网络原因等导致断了,但Python的demo还是在运行的,后台一直在抛出rtsp流异常的信息,这些信息现在Python有办法获取吗,这样就能在rtsp流出问题时主动结束demo了,请教大佬了,感谢
作者: dengkx    时间: 2023-7-27 17:15
本帖最后由 dengkx 于 2023-7-27 17:37 编辑
sky-brid 发表于 2023-7-27 16:37
好的,确实一般这种信息可以不理会,但是我现在碰到一个问题,比如当demo成功获取rtsp流,运行一段时间后 ...

因为模块是模块自己开线程运行的,抛出异常也没人去捕获,所以不会抛出异常。可以所以getModuleStatus接口获取模块状态。rtsp断开和超时不会改变模块状态,最新的代码rtsp支持了断线和超时重连。
python库要先卸载旧的,新的才能安装进去。





欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1