首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >camera.split_recording不会即时生成文件

camera.split_recording不会即时生成文件
EN

Stack Overflow用户
提问于 2018-03-04 12:46:46
回答 1查看 182关注 0票数 0

我正在录制视频,并希望定期将视频保存到文件中。我使用split_recording命令。然而,问题是所有的视频只有在stop_recording命令之后才会出现在光盘上。

代码语言:javascript
复制
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() 

我的应用程序是安全摄像头,这意味着我可以运行摄像头几天,没有录制的文件将看到,只有当我停止录制时,录制的文件将出现在这个。

如何在不停止摄像机录制的情况下将录制内容转储到文件中?

EN

回答 1

Stack Overflow用户

发布于 2018-03-05 03:07:00

您可能需要使用自定义输出对象,以下是来自documentation的代码片段

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49092068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档