我正在录制视频,并希望定期将视频保存到文件中。我使用split_recording命令。然而,问题是所有的视频只有在stop_recording命令之后才会出现在光盘上。
camera = PiCamera()
while (True):
camera.start_recording('1.h264',format='h264')
camera.wait_recording(5)
for i in range(2, 5):
camera.split_recording('%d.h264' % i, splitter_port=1)
camera.wait_recording(2)
#All recording files appear only after belowline
camera.stop_recording() 我的应用程序是安全摄像头,这意味着我可以运行摄像头几天,没有录制的文件将看到,只有当我停止录制时,录制的文件将出现在这个。
如何在不停止摄像机录制的情况下将录制内容转储到文件中?
发布于 2018-03-05 03:07:00
您可能需要使用自定义输出对象,以下是来自documentation的代码片段
import picamera
class MyOutput(object):
def __init__(self):
self.size = 0
def write(self, s):
self.size += len(s)
def flush(self):
print('%d bytes would have been written' % self.size)
with picamera.PiCamera() as camera:
camera.resolution = (640, 480)
camera.framerate = 60
camera.start_recording(MyOutput(), format='h264')
camera.wait_recording(10)
camera.stop_recording()在这种情况下,您的MyOutput类需要打开一个文件,并以关闭该文件的方式定义write函数。flush函数也应该刷新。例如,在MyOutput类的构造函数中,您可以打开一个文件keep文件处理程序作为类变量,而in write/flush函数则相应地写入和刷新文件处理程序。
Edited刚刚找到了类似问题的好答案:https://raspberrypi.stackexchange.com/a/31389
https://stackoverflow.com/questions/49092068
复制相似问题