2017-09-03 7 views
0

私はPicamera V3を使用して一連の動画を録画し、シリーズファイルに保存しています。たとえば、私は5つのビデオを記録し、それぞれは2秒です。私はそれらをファイル1〜ファイル5に保存します。私はこのコードを実行するとPicameraは異なるファイルにビデオを記録するエラー

import os 
from io import BytesIO 
from time import sleep 
import picamera 
from datetime import datetime 

""" initialization """ 
destination = '/home/pi/Desktop/video' 

stop = 0 

""" camera setup """ 
camera=picamera.PiCamera() 

camera.sharpness = 0 
camera.contrast = 0 
camera.brightness = 50 
camera.saturation = 0 
camera.ISO = 0 
camera.video_stabilization = False 
camera.exposure_compensation = 0 
camera.exposure_mode = 'auto' 
camera.meter_mode = 'average' 
camera.awb_mode = 'auto' 
camera.image_effect = 'none' 
camera.color_effects = None 
camera.rotation = 0 
camera.hflip = False 
camera.vflip = False 
camera.crop = (0.0, 0.0, 1.0, 1.0) 
camera.resolution=(1024,768) 

""" datetime get """ 
now = datetime.now() 

""" file name def """ 
def get_file_name(): 
    return os.path.join(destination, \ 
         "%s-%s-%s %s:%s:%s %d.h264" \ 
         %(now.year, now.month, \ 
          now.day, now.hour, now.minute, now.second, i)) 

# start loop 
while(stop==0): 

    if stop==1: 
     camera.stop_recording() 
     camera.stop_preview() 
     camera.close 

    else: 
     for i in range(1,5): 
      # open file 
      filename = get_file_name() 
      video_file = open(filename,'wb') 

      #start recording 
      camera.start_preview() 
      camera.start_recording(video_file) 
      sleep(2) 

      if i==4: 
       stop = 1 
       break 

:「カメラは、すでにポート1を使用している」 : 1を、私はエラーになります、私は唯一の2つのファイルではなく、5 2を得ることができ、次のコードを参照してください。私に何ができる? ありがとうございます!

+0

例外をキャッチするためにwait_recordingを使用します(たとえば、ディスク内のメモリが不足しています)。http://picamera.readthedocs.io/en/release-1.12/_modules/picamera/camera.html#PiCamera.wait_recording – IddoE

+0

btw、範囲(0,5)を5回繰り返し、範囲(1,5)を4回繰り返す – IddoE

+0

こんにちは、私はwait_recordingを試みました。同じエラーが発生しました。 A –

答えて

0

whileループにいくつか変更を加えましたが、今度はそれぞれの録音後にキーボード入力から確認したいと思います。

import os 
from io import BytesIO 
from time import sleep 
import picamera 
from datetime import datetime 

""" initialization """ 
destination = '/home/pi/Desktop/video' 
i = 0 
stop = 0 

""" camera setup """ 
camera=picamera.PiCamera() 

camera.sharpness = 0 
camera.contrast = 0 
camera.brightness = 50 
camera.saturation = 0 
camera.ISO = 0 
camera.video_stabilization = False 
camera.exposure_compensation = 0 
camera.exposure_mode = 'auto' 
camera.meter_mode = 'average' 
camera.awb_mode = 'auto' 
camera.image_effect = 'none' 
camera.color_effects = None 
camera.rotation = 0 
camera.hflip = False 
camera.vflip = False 
camera.crop = (0.0, 0.0, 1.0, 1.0) 
camera.resolution=(1024,768) 

""" datetime get """ 
now = datetime.now() 

""" file name def """ 
def get_file_name(): 
    return os.path.join(destination, \ 
         "%s-%s-%s %s:%s:%s %d.h264" \ 
         %(now.year, now.month, \ 
          now.day, now.hour, now.minute, now.second, i)) 

# start loop 
while(stop == 0): 
#while(True): 

    i = i + 1 
    # open file 
    filename = get_file_name() 
    video_file = open(filename,'wb') 

    #start recording 
    camera.start_preview() 
    camera.start_recording(video_file) 
    sleep(2) 

    camera.stop_recording() 
    camera.stop_preview() 

    video_file.close() 

    stop = raw_input("input 1 to stop or 0 continue\n") 

else: 
    camera.close() 
    print ("Done!") 

今、私は間違って何かまだある見つける: 1は、どんなに1または0 I入力、プログラムは "やった!" と表示されませんwhileループを終了します。 2、私が "1"とタイプすると録音が止まり、whileループを終了するか、ループが続行されるという機能を果たすために使用できる方法はありますか? ありがとうございます。

関連する問題