This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
autolab:duckietown-city:cameras [2022/12/10 09:08] 127.0.0.1 external edit |
autolab:duckietown-city:cameras [2022/12/19 09:39] (current) valentina_golubeva |
||
---|---|---|---|
Line 24: | Line 24: | ||
=== Как записать видео с камеры === | === Как записать видео с камеры === | ||
+ | |||
+ | Создаём файлик с кодом ниже. | ||
+ | |||
+ | |||
+ | from datetime import datetime | ||
+ | import cv2 | ||
+ | import argparse | ||
+ | parser = argparse.ArgumentParser() | ||
+ | parser.add_argument('--cam_num', type=int, default=1) | ||
+ | args = parser.parse_args() | ||
+ | if args.cam_num not in range(1, 7): | ||
+ | print(f"Camera with number{args.cam_num} does not exist!") | ||
+ | exit(0) | ||
+ | video = cv2.VideoCapture(f"http://autolab.moevm.info/camera_{args.cam_num}/live.mjpg") | ||
+ | if (video.isOpened() == False): | ||
+ | print("Error reading video file") | ||
+ | exit(0) | ||
+ | frame_width = int(video.get(3)) | ||
+ | frame_height = int(video.get(4)) | ||
+ | size = (frame_width, frame_height) | ||
+ | video_name = f"{datetime.now().strftime('%d_%m_%Y_%H:%M:%S')}.avi" | ||
+ | result = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*'MJPG'), 20, size) | ||
+ | while True: | ||
+ | ret, frame = video.read() | ||
+ | if ret == True: | ||
+ | result.write(frame) | ||
+ | cv2.imshow('Frame', frame) | ||
+ | if cv2.waitKey(1) & 0xFF == ord('s'): | ||
+ | break | ||
+ | else: | ||
+ | break | ||
+ | video.release() | ||
+ | result.release() | ||
+ | cv2.destroyAllWindows() | ||
+ | print(f"The video {video_name} was successfully saved") | ||
+ | |||
+ | |||
+ | === Запуск === | ||
+ | |||
+ | Передаём в качестве аргумента номер камеры при запуске. Доступны номера камер от 1 до 6. | ||
+ | |||
+ | python3 filename.py --cam_num 4 | ||
+ |