반응형

OpenCV에서 동영상 파일을 재생시 원하는 프레임부터 시작하도록 하는 예제 코드입니다. 

2023. 7. 27 최초작성



실행 결과입니다. 동영상 왼쪽 상단에 “현재 프레임 / 전체 프레임 수” 를 출력해줍니다. 



동영상 파일을 로드하여 300 프레임부터 플레이를 시작하도록 하고 있습니다. 

frame_num = 300

cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num)



플레이하기 전에 동영상 플레이 시작위치를 가져와서 프레임 출력의 시작 위치로 사용하도록 합니다. 

# 첫 프레임 위치를 가져옵니다. 인덱스가 0부터 시작하므로 1을 더해줍니다.

frame_count = int(cap.get(cv2.CAP_PROP_POS_FRAMES)) + 1



전체 코드입니다.

import cv2


cap = cv2.VideoCapture('big_buck_bunny_720p_5mb.mp4')


# 동영상의 전체 프레임 수
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

# 300 프레임부터 플레이 시작
frame_num = 300
cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num)

# 첫 프레임 위치를 가져옵니다. 인덱스가 0부터 시작하므로 1을 더해줍니다.
frame_count = int(cap.get(cv2.CAP_PROP_POS_FRAMES)) + 1


while True:

    ret,frame = cap.read()

    if not ret:
        break

   
    cv2.putText(frame, f'{frame_count}/{total_frames}', (100,100), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,255,0), 2)

    cv2.imshow('vidoe', frame)
    key = cv2.waitKey(1)
    if key == 27:
        break

    frame_count = frame_count + 1


반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts