camera.split_recording不会在运行时生成文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了camera.split_recording不会在运行时生成文件相关的知识,希望对你有一定的参考价值。
我正在录制视频,并希望定期将该视频保存到文件中。我使用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()
我的应用程序是安全摄像头,这意味着我可以运行相机几天,没有录制的文件会看到,只有当我停止录制时,录制的文件才会出现在此处。
如何在不停止摄像机录制的情况下将录制文件转储到文件中?
答案
您可能需要使用自定义输出对象,这里是来自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函数。刷新功能也应该冲洗。例如,在MyOutput类的构造函数中,您可以将文件保持文件处理程序作为类变量打开,而写入/刷新函数则相应地写入并刷新文件处理程序。
[编辑]刚刚找到了类似问题的一个很好的答案:https://raspberrypi.stackexchange.com/a/31389
以上是关于camera.split_recording不会在运行时生成文件的主要内容,如果未能解决你的问题,请参考以下文章
如何确保代码不会被多次调用,但不会像 dispatch_once 那样在整个程序执行中阻塞它?
当应用程序在 iOS 10 的前台时,不会调用“willPresent 通知”并且本地通知不会显示
ListAdapter Diff 不会在同一个列表实例上分派更新,但也不会在与 LiveData 不同的列表上分派更新