Image 树莓飞天电影

Image 树莓飞天电影,image,raspberry-pi,movie,Image,Raspberry Pi,Movie,我有一个覆盆子,我想在上面制作一部timelapse电影。 我在互联网上看到的所有例子都是先保存一堆图像,然后一次将它们转换成电影 我想在很长一段时间内制作一部电影,所以我无法保存数千张图像。我需要的是一个工具,可以在图像被捕获后立即将图像添加到电影中 有机会做到这一点吗?我认为,在你的逻辑中有一个缺陷——将每个图像添加到电影中,你必然会添加一个完整的帧,而不仅仅是一个差异帧。这将导致更高的质量,当然-但它也不会节省你在空间方面的任何东西相比,保存整个图像。在电影中添加内容所节省的空间都是关于这

我有一个覆盆子,我想在上面制作一部timelapse电影。
我在互联网上看到的所有例子都是先保存一堆图像,然后一次将它们转换成电影

我想在很长一段时间内制作一部电影,所以我无法保存数千张图像。我需要的是一个工具,可以在图像被捕获后立即将图像添加到电影中


有机会做到这一点吗?

我认为,在你的逻辑中有一个缺陷——将每个图像添加到电影中,你必然会添加一个完整的帧,而不仅仅是一个差异帧。这将导致更高的质量,当然-但它也不会节省你在空间方面的任何东西相比,保存整个图像。在电影中添加内容所节省的空间都是关于这个差异,而不是存储一个完整的帧


用递增的检查帧进行部分diff可能会起作用,但我不确定您的目标格式,也不确定需要什么代码来任意固定diff帧或完整帧,根据某些外部条件,编码通常作为一系列操作而不是单个操作进行。

答案是肯定的,但它还没有完成! 我需要你的帮助,使这个完美! 在python2中运行

import os, cv2
from picamera import PiCamera
from picamera.array import PiRGBArray
from datetime import datetime
from time import sleep

now = datetime.now()
x = now.strftime("%Y")+"-"+now.strftime("%m")+"-"+now.strftime("%d")+"-"+now.strftime("%H")+"-"+now.strftime("%M")  #string of dateandtimestart

def main():
  imagenum = 100 #how many images
  period = 1 #seconds between images
  os.chdir ("/home/pi/t_lapse")
  os.mkdir(x)
  os.chdir(x)
  filename = x + ".avi"

  camera = PiCamera()
  camera.resolution=(1920,1088)
  camera.vflip = True
  camera.hflip = True
  camera.color_effects = (128,128) #makes a black and white image for IR camera
  sleep(0.1)
  out = cv2.VideoWriter(filename, cv2.cv.CV_FOURCC(*'XVID'), 30, (1920,1088))
  for c in range(imagenum):
      with PiRGBArray(camera, size=(1920,1088)) as output:
          camera.capture(output, 'bgr')
          imagec = output.array
          out.write(imagec)
          output.truncate(0) #trying to get more than 300mb files..
          pass
      sleep(period-0.5)
  camera.close()
  out.release()

if __name__ == '__main__':
  main()
我已经配置了几个按钮和一个OLED来选择OLED上显示的时间间隔和帧数(为了简单起见,上面没有显示代码,但这里也有:)


这不会使视频超过366Mb,这是我已经达到的某种限制,我不知道为什么-如果有人有好的建议,我将不胜感激

我知道视频格式将多张图片组合在一起以正确编码。如果有一个工具可以在内部对它们进行总结,那就太好了,但我也可以通过添加一些图像而不是单个图像来支持编码过程。一个6分钟的剪辑应该可以毫无问题地放在rasperry上,但是需要的9000张单张图片有点过载。我所需要的只是大幅减少编码器必须提供的图像。我有点觉得你最终会拆开一个工具,自己手工雕刻一些东西,来完成这项工作。或者,您可以对20帧进行编码,第一帧是完整帧,其余帧是差异帧,然后删除源图像。你以后必须把电影放在一起……是的,一部短的中间电影是一种有趣的方法。这与我想象中的单张照片非常接近。有这么多工具,你知道其中一个是不错的选择吗?恐怕我没有工具推荐。我确实想知道是否有一个树莓pi的堆栈溢出站点,尽管我不这么认为,只是为它标记的问题。或者Linux组是最好的选择?我浏览了一些示例,其中显示了具有大量未记录参数的复杂命令。它们要么因为不可理解的原因而无法工作,要么创建无法打开的输出。或者两者都有-创建一些输出,然后挂起。。。不知道发生了什么事。这似乎是一项非常艰巨的任务:-(很明显,我的RAM都用完了,这就是为什么我会限制文件大小的原因-接下来的步骤是创建短视频,然后在PC上连接它们,而不是pi。