import cv2 from datetime import datetime def main(): # 0 — встроенная USB/веб-камера # Для RTSP можно указать строку: # camera_url = "rtsp://login:password@192.168.1.100:554/Streaming/Channels/101" camera_url = 0 cap = cv2.VideoCapture(camera_url) if not cap.isOpened(): print("Ошибка: не удалось открыть камеру") return # Настройки камеры width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps = cap.get(cv2.CAP_PROP_FPS) if fps <= 0 or fps > 120: fps = 25 print(f"Камера открыта: {width}x{height}, FPS={fps}") filename = datetime.now().strftime("record_%Y-%m-%d_%H-%M-%S.mp4") # Кодек для MP4 fourcc = cv2.VideoWriter_fourcc(*"mp4v") writer = cv2.VideoWriter( filename, fourcc, fps, (width, height) ) if not writer.isOpened(): print("Ошибка: не удалось создать файл записи") cap.release() return print(f"Запись началась: {filename}") print("Нажми Q для остановки") while True: ret, frame = cap.read() if not ret: print("Ошибка: кадр не получен") break writer.write(frame) cv2.imshow("Camera recording", frame) if cv2.waitKey(1) & 0xFF == ord("q"): print("Остановка записи") break cap.release() writer.release() cv2.destroyAllWindows() print(f"Видео сохранено: {filename}") if __name__ == "__main__": main()