Files
aurelie/ia2
2026-04-20 22:44:54 -04:00

62 lines
1.8 KiB
Plaintext

from picamera2.encoders import H264Encoder
from picamera2 import Picamera2, Preview, H264Encoder
import cv2 as cv
from imutils.video.pivideostream import PiVideoStream
import imutils
import time
from datetime import datetime
import numpy as np
class VideoCamera(object):
def __init__(self, flip=False, file_type=".jpg", photo_string="stream_photo"):
self.pcam = Picamera2()
self.video_config = self.pcam.create_video_configuration(main={"size": (1920, 1080)}, lores={"size": (640, 480)})
self.encoder = H264Encoder(bitrate=10000000)
self.output = "test.h264"
self.flip = flip
self.file_type = file_type
self.photo_string = photo_string
def start_preview(self):
self.pcam.start_preview(Preview.QTGL)
def stop_preview(self):
self.pcam.stop_preview()
def start_recording(self):
self.pcam.start_recording(self.encoder, self.output)
def stop_recording(self):
self.pcam.stop_recording()
def capture(self):
frame = self.pcam.capture()
ret, jpeg = cv.imencode(self.file_type, frame)
return jpeg.tobytes()
def take_picture(self):
frame = self.pcam.capture()
ret, image = cv.imencode(self.file_type, frame)
today_date = time.strftime("%m%d%Y-%H%M%S")
cv.imwrite(str(self.photo_string + "_" + today_date + self.file_type), frame)
def __del__(self):
self.stop_preview()
picam2 = Picamera2()
video_config = picam2.create_video_configuration(main={"size": (1920, 1080)}, lores={"size": (640, 480)}, display="lores")
picam2.configure(video_config)
encoder = H264Encoder(bitrate=10000000)
output = "test.h264"
picam2.start_preview(Preview.QTGL)
picam2.start_recording(encoder, output)
time.sleep(10)
picam2.stop_recording()
picam2.stop_preview()