1. 시험환경
˙ 라즈베리파이 4 (Raspberry Pi 4 Model B)
˙ raspberry camera module v3
2. 목적
˙ 라즈베리파이에 카메라 모듈을 연동한다.
˙ 10분씩 녹화하는 프로그램을 작성한다.
3. 적용
① Raspberry Camera Module v3을 사용하기 위해서 32bit 운영체제를 설치해야 함에 주의한다.
② 라즈베리파이 보드에 카메라 모듈을 설치한다.
③ 라즈베리파이 카메라 녹화 프로그램을 작성한다.
- 카메라가 작동하여 10분씩 저장
- 저장 파일명의 prefix로 "_날짜_시간" 추가
- 녹화 시작 전 디스크 잔여 공간을 확인하고, 500MB 이하인 경우 생성날짜가 빠른 파일 삭제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import time
import picamera
from datetime import datetime
import os
import shutil
def capture_video(output_file, duration):
with picamera.PiCamera() as camera:
# 카메라 설정 (해상도, 프레임 속도 등)
camera.resolution = (1280, 720) # 적절한 해상도로 변경 가능
camera.framerate = 30
# 비디오 녹화 시작
camera.start_recording(output_file)
# 지정된 시간만큼 녹화
camera.wait_recording(duration)
# 비디오 녹화 종료
camera.stop_recording()
def get_disk_usage():
# 현재 디렉토리의 디스크 사용량 확인 (바이트 단위)
return shutil.disk_usage("/").free
def delete_oldest_file(directory):
# 디렉토리 내에서 생성일 기준으로 가장 오래된 파일 삭제
files = [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))]
if files:
oldest_file = min(files, key=lambda f: os.path.getctime(os.path.join(directory, f)))
os.remove(os.path.join(directory, oldest_file))
print(f"{oldest_file} 파일이 삭제되었습니다.")
if __name__ == "__main__":
video_directory = "/path/to/video_directory" # 비디오 파일 저장 디렉토리 경로
duration = 600 # 녹화 시간 (초 단위)
min_disk_space = 500 * 1024 * 1024 # 최소 디스크 용량 (500MB)
while True:
try:
# 디스크 용량 확인
disk_space = get_disk_usage()
# 디스크 용량이 500MB 미만인 경우 가장 오래된 파일 삭제
if disk_space < min_disk_space:
delete_oldest_file(video_directory)
# 현재 날짜 및 시간 가져오기
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
# 비디오 파일명 생성 (날짜_시간_video.h264 형식)
output_file = os.path.join(video_directory, f"{current_time}_video.h264")
# 비디오 녹화
capture_video(output_file, duration)
# 10분 대기
time.sleep(duration)
except KeyboardInterrupt:
print("프로그램을 종료합니다.")
break
|
cs |
4. 결과
˙ 프로그램을 실행하여 영상 녹화 여부를 확인한다.
'라즈베리파이 (Raspberry Pi)' 카테고리의 다른 글
라즈베라파이 VNC 설정 및 접속 (VNC-Viewer) (0) | 2023.11.19 |
---|---|
라즈베라파이 한글 설정 (라즈비안 설정) (0) | 2023.11.07 |
라즈베리파이 운영체제 설치 및 초기접속 (0) | 2023.11.04 |