我有一个程序,它将以24/7的速度运行,从相机获取帧,进行处理并通过本地网络发送.jpg图像。通常,我不希望将视频保存到任何文件,但是,我可能希望在某些情况下安排x分钟的保存(未触发,已安排)。
我通过将VideoWriter作为VideoCamera的线程来处理视频录制。我发现这对于以正确的fps处理书写更为准确。当我想从头开始录制以及只想流式传输时,此过程可以完美地工作。我像这样启动相机。
import ...
# from custom file import `VideoCamera` which has access to `VideoWriter`
from camera import VideoCamera
video_camera = VideoCamera(
flip = False,
usePiCamera = False,
resolution = (640, 480),
record = False,
record_duration = None,
record_timestamp = True
)
无法将相机初始化两次(无法访问同一相机两次)。因此,我正在考虑安排停止并使用新参数(例如record = True, record_duration = "00:10:00"
)重新启动。
我从控制台(python main.py
)调用脚本,该控制台具有:
if __name__ == '__main__':
t = threading.Thread(target=processing_fun, args=())
t.daemon = True
t.start()
print("To see feed connect to " + get_ip_address() + ":5000")
# to do, read ifconfig and assign IP using raspberry's IP
app.run(host='0.0.0.0', port = 5000, debug=False)
processing_fun
如果我执行del(video_camera)
,将会死,因为它需要来自相机的帧。流也一样。我不确定是否可以在不中断线程的情况下删除相机。
我正在考虑一种方法
video_camera
的初始化我看过here和here,但不确定如何按计划将它们放在一起。
我有一个程序,它将以24/7的速度运行,从相机获取帧,进行处理并通过本地网络发送.jpg图像。通常,我不希望将视频保存到任何文件,但是我可能希望...
您可以使用crontab
来安排脚本,并且提到您还可以使用crontab
杀死脚本。您可以创建startup.sh
脚本和某种shutdown.sh
来管理您的日程安排。