树莓凸轮在运行 2 天后停止工作



>我编写了一个程序来使用RPi Cam捕获和保存图像。
系统运行良好,但突然出现以下错误:

mmal: mmal_vc_port_enable: failed to enable port 
vc.ril.image_encode:out:0(JPEG): ENOMEM
mmal: mmal_port_enable: failed to enable port 
vc.ril.image_encode:out:0(JPEG)
(0xc8a100) (ENOMEM)
Traceback (most recent call last):
File "./Test_cam.py", line 300, in <module>
putfunc()
File "./Test_cam.py", line 169, in putfunc
oneshot(_client_id)
File "./Test_cam.py", line 137, in oneshot
_cam.capture(ifn, use_video_port=True,resize=(1920,1080),splitter_port=0)
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 1418, in capture
encoder.start(output)
File "/usr/lib/python2.7/dist-packages/picamera/encoders.py", line 1126, in start
super(PiCookedOneImageEncoder, self).start(output)
File "/usr/lib/python2.7/dist-packages/picamera/encoders.py", line 377, in start
self.output_port.enable(self._callback)
File "/usr/lib/python2.7/dist-packages/picamera/mmalobj.py", line 1249, in enable
prefix="Unable to enable port %s" % self.name)
File "/usr/lib/python2.7/dist-packages/picamera/exc.py", line 184, in mmal_check
**raise PiCameraMMALError(status, prefix)**
**picamera.exc.PiCameraMMALError: Unable to enable port vc.ril.image_encode:out:0: Out of memory**

谁能帮我?

相关:
错误消息"_mmal:mmal_vc_port_enable:无法启用port_"来自libmmal.so

在 API 中找到以下内容 - mmalobj
警告
API 的这一部分仍处于实验阶段,可能会在未来版本中进行更改。

验证您使用的是最新的picamera modulelibmmal.so。由于picamera使用libmmal.so,验证您也在使用兼容的版本。

更多信息 网站:
raspberrypi.org:纯Python相机接口 维护者picamera
SO 答:如何更新 libmmal.so


评论:我不知道"记忆"中的"记忆"是什么意思

可能是后续错误。

错误消息
mmal: mmal_vc_port_enable: 无法启用端口
vc.ril.image_encode:out:0(JPEG): ENOMEM

端口一定有问题。
也可能由于长时间运行而导致缓冲区溢出


验证您的相机是否损坏,请尝试以下脚本:

from time import sleep
from picamera import PiCamera
camera = PiCamera()
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
sleep(2)
camera.capture('foo.jpg', resize=(320, 240))
while (time.time() - start) < vterm:
_cam.annotate_text = id + "n" + time.strftime('%Y-%m-%d %H:%M:%S')
nt = time.time()
if (nt - pt) > iterm:
ifn = tmpfname('jpg') 
_cam.capture(ifn, use_video_port=True,resize=(1920,1080),splitter_port=0)
tmp2nofile(nt, _path['live'], ifn, 'jpg')
pt = nt
if _debug:
print 'image',ifn
time.sleep(0.1)
_cam.stop_recording(splitter_port=1)
tmp2nofile(start, _path['live'], vfn, 'h264')
_cam.stop_preview()
_cam.close()

最新更新