【OpenCV】 비디오 출력
◆ 동영상 파일에서 순차적으로 프레임을 읽어 이미지의 형태로 출력한다.
◆ 동영상 파일을 읽으려면 동영상을 읽을 수 있는 코덱 라이브러리가 설치되어 있어야 한다.
◆ OpenCV는 FFmpeg를 지원하므로 *.avi나 *.mp4 등 다양한 형식의 동영상 파일을 손쉽게 읽을 수 있다.
◆ 이미지 파일 중, GIF 확장자는 프레임이 존재하므로, 동영상 파일을 읽는 방법과 동일하게 처리한다.
---<< 함수 >>---------------------------------------------------------
● capture = cv2.VideoCapture(fileName)
파일 경로(fileName)의 동영상 파일을 불러온다.
◆ VideoCapture 메서드
capture.isOpened() 동영상 파일 열기 성공 여부 확인
capture.open(filename) 동영상 파일 열기
capture.set(propid, value) 동영상 속성 설정
capture.get(propid) 동영상 속성 반환
capture.release() 동영상 파일을 닫고 메모리 해제
● capture.set(propid, value)
: 웹캠이나 동영상 파일의 속성(해상도, FPS 등)을 설정하는 데 사용
상수 (Property ID) 내용 비고
--------------------------------------------------------------------------------------------------------------
cv2.CAP_PROP_FRAME_WIDTH 프레임의 너비 -
cv2.CAP_PROP_FRAME_HEIGHT 프레임의 높이 -
cv2.CAP_PROP_FRAME_COUNT 총 프레임 수 -
cv2.CAP_PROP_FPS 프레임 속도 -
cv2.CAP_PROP_FOURCC 코덱 코드 -
cv2.CAP_PROP_BRIGHTNESS 이미지 밝기 카메라만 해당
cv2.CAP_PROP_CONTRAST 이미지 대비 카메라만 해당
cv2.CAP_PROP_SATURATION 이미지 채도 카메라만 해당
cv2.CAP_PROP_HUE 이미지 색상 카메라만 해당
cv2.CAP_PROP_GAIN 이미지 게인 카메라만 해당
cv2.CAP_PROP_EXPOSURE 이미지 노출 카메라만 해당
cv2.CAP_PROP_POS_MSEC 프레임 재생 시간 ms 반환
cv2.CAP_PROP_POS_FRAMES 현재 프레임 프레임의 총 개수 미만
CAP_PROP_POS_AVI_RATIO 비디오 파일 상대 위치 0 = 시작, 1 = 끝
-----------------------------------------------------------------------------------------------------------------
▶ 비디오 속성 반환 메서드(capture.get)로 비디오의 속성을 반환한다.
▶ 비디오의 정보 중, 동영상의 현재 프레임 수(cv2.CAP_PROP_POS_FRAMES)와
동영상의 총 프레임 수(cv2.CAP_PROP_FRAME_COUNT)를 받아온다.
▶ if 문을 이용하여 동영상의 현재 프레임 수와 동영상의 총 프레임 수를 비교한다.
- 현재 프레임의 수가 총 프레임 수가 같다면, 현재 재생되고 있는 프레임은 가장 마지막이 된다.
- 마지막 프레임은 동영상이 종료되는 시점이 되므로,
비디오 속성 설정 메서드(capture.get)로 동영상의 현재 프레임을 초기화한다.
▶ 동영상 파일 읽기 메서드(capture.open)를 이용하여 다시 동영상 파일을 불러올 수도 있다.