while True:
num += 1
snum = str(num)
#현재시간 가져오기
currentTime = datetime.datetime.now()
if bDate == "":
bDate = str(currentTime.strftime('%Y%m%d'))
#RTSP를 불러오는 곳
video_capture = cv2.VideoCapture(1)
# 웹캠 설정
#video_capture.set(3, 800) # 영상 가로길이 설정
#video_capture.set(4, 600) # 영상 세로길이 설정
fps = 20
# 가로 길이 가져오기
streaming_window_width = int(video_capture.get(3))
# 세로 길이 가져오기
streaming_window_height = int(video_capture.get(4))
#현재 시간을 '년도 달 일 시간 분 초'로 가져와서 문자열로 생성
#current date
cDate = str(currentTime.strftime('%Y%m%d'))
if cDate != bDate:
num = 0
bDate = cDate
#파일 저장하기 위한 변수 선언
path = f'01_1_T_EG_NA_{cDate}_{snum.zfill(2)}.mp4'
# DIVX 코덱 적용 # 코덱 종류 # DIVX, XVID, MJPG, X264, WMV1, WMV2
# 무료 라이선스의 이점이 있는 XVID를 사용
#fourcc = cv2.VideoWriter_fourcc('X', 'V', 'I', 'D')
fourcc = cv2.VideoWriter_fourcc(*'MP4V')
# 비디오 저장
# cv2.VideoWriter(저장 위치, 코덱, 프레임, (가로, 세로))
out = cv2.VideoWriter(path, fourcc, fps, (streaming_window_width, streaming_window_height))
i = 0
while True:
i += 1
ret, frame = video_capture.read()
# 촬영되는 영상보여준다. 프로그램 상태바 이름은 'streaming video' 로 뜬다.
cv2.imshow('streaming video', frame)
# 영상을 저장한다.
out.write(frame)
# 1ms뒤에 뒤에 코드 실행해준다.
k = cv2.waitKey(1) & 0xff
#키보드 esc 누르면 종료된다.
if k == 27:
break
if i ==72000:
#i = 0
break
video_capture.release() # cap 객체 해제
out.release() # out 객체 해제
cv2.destroyAllWindows()
print("capture end")
2022.09.19 - [개발일지/ffmpeg] - ffmpeg을 사용하여 webcam의 영상을 저장하거나 udp 방송
위의 글을 읽어보시면 왜 ffmpeg을 사용하지 않고, python을 사용하여 영상을 저장하는지 궁금하신 분들이 있을겁니다.
열화상이 기본적으로 찍는 영상은 흑백 영상으로 많이 알려진 온도에 따른 색상과 같이 보려면 python 코드가 필요합니다.