Files
picam/rpi_camera_surveillance_system.py
2025-12-07 16:15:45 +01:00

39 lines
978 B
Python

#!/usr/bin/python3
import socket
from threading import Event
from picamera2 import Picamera2
from picamera2.encoders import JpegEncoder
from picamera2.outputs import PyavOutput
picam2 = Picamera2()
video_config = picam2.create_video_configuration({"size": (1280, 720), 'format': 'YUV420'})
picam2.configure(video_config)
encoder = H264Encoder(bitrate=10000000)
encoder.audio = True
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(("0.0.0.0", 8888))
while True:
print("Waiting")
sock.listen()
conn, addr = sock.accept()
print("Connected")
output = PyavOutput(f"pipe:{conn.fileno()}", format="mpeg")
event = Event()
output.error_callback = lambda e: event.set() # noqa
picam2.start_recording(JpegEncoder(), output)
event.wait()
print("Disconnected")
picam2.stop_recording()