Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.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 Raspberry Pi摄像头捕获循环缓冲区和后续(x)秒数_Python_Camera_Raspberry Pi - Fatal编程技术网

Python Raspberry Pi摄像头捕获循环缓冲区和后续(x)秒数

Python Raspberry Pi摄像头捕获循环缓冲区和后续(x)秒数,python,camera,raspberry-pi,Python,Camera,Raspberry Pi,我最近得到了树莓圆周率相机模块。通过他们的循环缓冲区示例发现 我的目标是保存内置于“stream=picamera.PiCameraCircularIO(摄影机,秒数=20)”中的20秒缓冲区,但还要继续录制30秒。下面我在他们的示例中添加的主要内容是“time.sleep(30)”,在第17针的GPIO输入之后。当我运行它时,它有时会生成一个文件,但该文件永远无法播放。如果您能提供任何建议,我将不胜感激 代码: 我认为更好的方法是替换: time.sleep(30) 借 您正在正确启动循环缓

我最近得到了树莓圆周率相机模块。通过他们的循环缓冲区示例发现

我的目标是保存内置于“stream=picamera.PiCameraCircularIO(摄影机,秒数=20)”中的20秒缓冲区,但还要继续录制30秒。下面我在他们的示例中添加的主要内容是“time.sleep(30)”,在第17针的GPIO输入之后。当我运行它时,它有时会生成一个文件,但该文件永远无法播放。如果您能提供任何建议,我将不胜感激

代码:


我认为更好的方法是替换:

time.sleep(30)


您正在正确启动循环缓冲区,该缓冲区将保存20秒的视频。 最后20秒的视频。然而,等待30秒是徒劳的,因为它只能保存20秒的视频

如果您阅读了advanced recipes中的picamera文档(picamera.readthedocs.org),它们将向您展示如何使用split_录制来保存循环缓冲区的内容,然后您可以在第二个IO(文件或流)记录当前发生的事情时写入循环缓冲区

现在你可以使用相机了。等待录制(30),然后将录制分回到另一个IO(在高级配方中,它是原始的、截断的、循环的)

最后,您将有两个文件。一个包含缓冲区,即前20秒,另一个包含后30秒。然后你把这两个放在一起,瞧,你现在有一个50秒的视频。Mp4Box在这方面做得很好

现在,我一直在努力使用io.open动态连接这两个流,但我怀疑当您使用io.open('blah.h264','ab')时,会弄乱一些标题详细信息/信息,这意味着您只能获得最后附加的视频。我想读这篇文章的人不是h264编码的笨蛋吧

time.sleep(30)
camera.wait_recording(30)