Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 树莓pi3启动时的视频录制自动化_Python_Bash_Opencv_Cron_Raspberry Pi3 - Fatal编程技术网

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

Python 树莓pi3启动时的视频录制自动化,python,bash,opencv,cron,raspberry-pi3,Python,Bash,Opencv,Cron,Raspberry Pi3,我已经编写了一个python代码,其中包含一些opencv代码,可以用来玩我的网络摄像头。我把它附在了raspi 3上。我希望在启动(引导)时,它会自动开始录制视频。。 我正在为此使用crontab 我的Python代码: 然后我制作了一个bash脚本,看起来像这样 cam22.py是我的python文件的名称 然后我使用contrab在运行时通过编写 重新启动后,在同一目录中生成了两个avi文件,但没有录制视频,网络摄像头不会运行,但是当我自己执行这个bash文件来运行python文件时,它运

我已经编写了一个python代码,其中包含一些opencv代码,可以用来玩我的网络摄像头。我把它附在了raspi 3上。我希望在启动(引导)时,它会自动开始录制视频。。 我正在为此使用crontab

我的Python代码:

然后我制作了一个bash脚本,看起来像这样

cam22.py是我的python文件的名称

然后我使用contrab在运行时通过编写

重新启动后,在同一目录中生成了两个avi文件,但没有录制视频,网络摄像头不会运行,但是当我自己执行这个bash文件来运行python文件时,它运行得非常好


正如评论中所建议的,我已经创建了一个日志文件,它显示了错误日志显示(视频流:542):Gtk警告**:无法打开显示:

如果生成了两个文件,则表示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()后工作正常。

很难说,但如果您想记录错误,只需将
@重新启动路径写入我的bash文件>>日志文件
即可了解实际发生的情况。尝试删除与屏幕和键盘的交互,这些交互可能对
cron
进程不可用-
imshow()
waitkey()
。@Bhavyanshu错误日志显示(视频流:542):Gtk警告**:无法打开显示:该错误消息与我的建议相符
cron
进程没有显示-请尝试删除
imshow()
wait key()
destroyAllWindows()
以及与屏幕或终端/键盘有关的任何内容。您好,先生,我认为文件格式不应该是问题,因为当我手动运行此代码时,录像开始并正确保存。bash文件也运行良好,我已经测试过了。我已经编辑了问题并添加了错误日志@然后我想这是与硬件有关的,只要在程序开始时尝试添加一些睡眠,并让我知道是否有任何进展,我从昨天开始就这样做了,甚至尝试了2分钟@阿披实
cd /
cd absolute path to my python file directory
sudo python cam22.py
cd /
@reboot path to my bash file
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)