覆盆子游戏中时光倒流电影在飞行中

时间:2016-03-17 21:06:29

标签: image raspberry-pi movie

我有一个Raspberry,我想在其上创建一个间隔拍摄电影 我在互联网上看到的所有例子都保存了一堆图像,然后一次将它们转换成电影。

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

有机会这样做吗?

2 个答案:

答案 0 :(得分:1)

我认为你的逻辑存在缺陷 - 通过将每个图像添加到电影中,你必然会添加一个全帧,而不仅仅是一个差异帧。这样可以确保更高的质量 - 但与保存整个图像相比,它也不会为您节省空间。在向电影中添加内容时所看到的空间节省就是差异,而不是存储整个帧。

以递增的方式对支票进行部分差异可能有效,但我不确定您要定位的格式,也不确定需要哪些代码才能随意添加差异帧或一个完整的帧,取决于一些外部条件 - 编码通常作为一系列操作而不是单独进行。

答案 1 :(得分:1)

一个答案,但是还没有完成! 我需要您的帮助,使它变得完美! 在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上显示的时间间隔和帧号(为简单起见,代码未在上方显示,但它也在这里:https://github.com/gchennell/RPi-PiLapse

这不会使视频大于366Mb,这是我已经达到的极限,我也不知道为什么-如果有人有好的建议,我将不胜感激