【发布时间】:2018-01-08 20:43:30
【问题描述】:
我编写了一个 python 代码,其中包含一些 opencv 代码来玩我的网络摄像头。我已将它附加到 raspi 3。我希望在启动(启动)时,它会自动开始录制视频.. 我正在为此使用 crontab。
我的 Python 代码:
import cv
if __name__ == "__main__":
# find the webcam
capture = cv2.VideoCapture(0)
capture1 = capture
# video recorder
fourcc = cv2.cv.CV_FOURCC(*'XVID') #cv2.VideoWriter_fourcc() does not exist
videoOut = cv2.VideoWriter('out1.avi', fourcc, 10.0, (640, 480))
videoOut1 = cv2.VideoWriter('out2.avi', fourcc, 10.0, (640, 480))
# record video
while (capture.isOpened() and capture1.isOpened()):
ret, frame = capture.read()
ret1, frame1 = capture1.read()
if ret:
videoOut.write(frame)
cv2.imshow('Video Stream', frame)
else:
break
if ret1:
frame1 = cv2.flip(frame1,1)
videoOut1.write(frame1)
cv2.imshow('Video Stream1', frame1)
else:
break
# Tiny Pause
key = cv2.waitKey(1)
capture1.release()
videoOut1.release()
capture.release()
videoOut.release()
cv2.destroyAllWindows()
然后我制作了一个看起来像这样的 bash 脚本,
cd /
cd absolute path to my python file directory
sudo python cam22.py
cd /
cam22.py 是我的 python 文件的名称
然后我使用 conrab 在运行时通过编写运行这个 bash 脚本
@reboot path to my bash file
重启后在同一目录下生成了两个avi文件,但没有录制视频,网络摄像头没有运行,但是当我自己执行这个bash文件运行python文件时,它运行完美。
按照 cmets 中的建议,我创建了一个日志文件,它显示错误日志显示 (Video Stream:542): Gtk-Warning **: cannot open display:
【问题讨论】:
-
很难说,但如果你想记录错误,只需写
@reboot path to my bash file >> logfile就知道实际发生了什么。 -
尝试删除
cron进程可能无法使用的屏幕和键盘交互 -imshow()、waitkey()... -
@Bhavyanshu 错误日志显示(视频流:542):Gtk-Warning **:无法打开显示:
-
该错误消息符合我的建议。
cron进程没有显示 - 请尝试删除imshow()、wait key()和destroyAllWindows()以及与屏幕或终端/键盘有关的任何内容。
标签: python bash opencv cron raspberry-pi3