본문 바로가기

Python

[Python] openCV로 video runtime 출력하는 법!

오늘 급한 요청을 받았다. mp4파일의 영상 길이 출력해달라는! .. 이미지나 비디오 파일은 웬만하면 openCV로 다 다룰 수 있다. 근데 내가 openCV가 조금 미숙하여 오래걸리면 우짜나.. 걱정했다. 하지만 생각보다 간단했던 mp4파일의 영상 길이 출력하는 방법! 요청하신 분이 30분~1시간... 최대한 빨리! 라고 부탁을 하셨는데 내 걱정과는 달리 30분만에 끝냈다. 구글링 실력이 늘은것인가.. ㅋㅋㅋ

방법은 이러하다.

def get_video_duration(file_path):
    video = cv2.VideoCapture(file_path)		# 비디오 파일을 불러온다
    fps = video.get(cv2.CAP_PROP_FPS)		# 파일의 fps를 뽑는다
    frame_count = int(video.get(cv2.CAP_PROP_FRAME_COUNT))	# 파일의 frame count를 뽑는다
    duration = frame_count / fps	# frame count를 fps로 나눠준다.(이게 영상 길이)
    video.release()		# 닫는다.
    return duration

cv2에서는 영상 길이를 출력하는 함수가 따로 없다. 그래서 frame count를 fps로 나눠줘 영상 길이를 구해야 한다. 생각보다 간단했던 video runtime 출력하는 방법!