简体   繁体   English

树莓派pi3启动时的视频录制自动化

[英]Automation of video recording on booting of raspberry pi3

I have written a python code which contains some opencv code to play around with my webcam. 我写了一个python代码,其中包含一些与我的网络摄像头一起使用的opencv代码。 I have attached it to raspi 3. I want that on startup(booting), it start recording video automatically.. I am using crontab for this. 我已经将它附加到raspi 3上。我希望它在启动(启动)时自动开始录制视频。.我为此使用crontab。

My Python code: 我的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()

Then I made a bash script which looks like this, 然后我制作了一个bash脚本,看起来像这样,

cd /
cd absolute path to my python file directory
sudo python cam22.py
cd /

cam22.py is the name of my python file cam22.py是我的python文件的名称

Then I used contrab to run this bash script at runtime by writing 然后我通过使用contrab在运行时通过编写以下bash脚本来运行

@reboot path to my bash file

After rebooting two avi files are generated in the same directory but the video is not recorded, the webcam doesn't runs, which however runs perfectly when I myself execute this bash file to run the python file. 重新启动后,在同一目录中生成了两个avi文件,但未记录视频,网络摄像头无法运行,但是当我自己执行此bash文件以运行python文件时,该摄像头可以完美运行。

As Suggested in comments, I've created a log file, it shows The error log shows (Video Stream:542): Gtk-Warning **: cannot open display: 如注释中所建议,我已经创建了一个日志文件,它显示错误日志(视频流:542):Gtk-警告**:无法打开显示:

正如Mark Setchell在评论中所建议的那样,在删除imshow(),waitkey()之后,它可以正常工作。

If two files are generated that means crontab works fine. 如果生成了两个文件,则意味着crontab可以正常工作。 it also means that video not generated due to wrong format spelling .avi change it to .AVI and try once 这还意味着由于格式拼写错误而无法生成的视频。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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM