树莓派3开机自动录像
Automation of video recording on booting of raspberry pi3
我写了一个 python 代码,其中包含一些 opencv 代码,可以与我的网络摄像头一起玩。我已将它附加到 raspi 3。我希望它在启动(引导)时自动开始录制视频。
为此,我正在使用 crontab。
My Python code:
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()
Then I made a bash script which looks like this,
cd /
cd absolute path to my python file directory
sudo python cam22.py
cd /
cam22.py 是我的 python 文件的名称
Then I used contrab to run this bash script at runtime by writing
@reboot path to my bash file
重启后在同一个目录下生成了两个avi文件但是没有录制视频,网络摄像头没有运行s,但是当我自己执行这个运行s时完美bash 文件到 运行 python 文件。
按照评论中的建议,我创建了一个日志文件,它显示错误日志显示(视频 Stream:542):Gtk-Warning **:无法打开显示:
如果生成了两个文件,则表示 crontab 工作正常。
这也意味着由于格式拼写错误而无法生成视频 .avi 将其更改为 .AVI 并尝试一次
fourcc = cv2.cv.CV_FOURCC('D', 'I', 'V', 'X')
videoOut = cv2.VideoWriter('output1.AVI', fourcc, 20, (640, 480), 1)
videoOut2 = cv2.VideoWriter('output2.AVI', fourcc, 20, (640, 480), 1)
正如 Mark Setchell 在评论中所建议的那样,它在删除 imshow()、waitkey() 后可以正常工作。
我写了一个 python 代码,其中包含一些 opencv 代码,可以与我的网络摄像头一起玩。我已将它附加到 raspi 3。我希望它在启动(引导)时自动开始录制视频。 为此,我正在使用 crontab。
My Python code:
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()
Then I made a bash script which looks like this,
cd /
cd absolute path to my python file directory
sudo python cam22.py
cd /
cam22.py 是我的 python 文件的名称
Then I used contrab to run this bash script at runtime by writing
@reboot path to my bash file
重启后在同一个目录下生成了两个avi文件但是没有录制视频,网络摄像头没有运行s,但是当我自己执行这个运行s时完美bash 文件到 运行 python 文件。
按照评论中的建议,我创建了一个日志文件,它显示错误日志显示(视频 Stream:542):Gtk-Warning **:无法打开显示:
如果生成了两个文件,则表示 crontab 工作正常。 这也意味着由于格式拼写错误而无法生成视频 .avi 将其更改为 .AVI 并尝试一次
fourcc = cv2.cv.CV_FOURCC('D', 'I', 'V', 'X')
videoOut = cv2.VideoWriter('output1.AVI', fourcc, 20, (640, 480), 1)
videoOut2 = cv2.VideoWriter('output2.AVI', fourcc, 20, (640, 480), 1)
正如 Mark Setchell 在评论中所建议的那样,它在删除 imshow()、waitkey() 后可以正常工作。