Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 시간적 일관성
- 메타
- tts
- 트랜스포머
- 3d 재구성
- OpenCV
- AI
- LORA
- 우분투
- 오픈소스
- 코딩
- 오픈AI
- OpenAI
- 생성형AI
- ai 챗봇
- XAI
- 강화 학습
- 티스토리챌린지
- 일론 머스크
- 인공지능
- 확산 모델
- PYTHON
- AI 기술
- 오블완
- ChatGPT
- 휴머노이드 로봇
- ubuntu
- 딥러닝
- 다국어 지원
- LLM
Archives
- Today
- Total
AI 탐구노트
OpenCV에서 비디오 영상을 특정 시점, 특정 프레임부터 읽기 본문
OpenCV를 이용해 영상을 읽어올 때 특정 시점부터로 지정하고 싶을 때가 있습니다. 일반적으로 테스트에 사용할 영상을 유튜브에서 다운받는 경우가 많은데, 앞뒤에 불필요한 부분이 있는 경우가 있죠. 이럴 경우, 영상 툴을 이용해서 필요한 부분만 남기고 잘라내서 사용하는 경우가 많을텐데 그렇게 하지 않고 특정 시점부터 사용할 수 있는 방법도 있습니다.
이번 글에서는 OpenCV VideoCapture를 이용해 특정 시점부터 영상을 읽는 방법을 소개하겠습니다.
1️⃣ 특정 시간(초 단위)으로 이동
cv2.VideoCapture.set() 메서드를 사용하여 영상의 재생 위치를 초 단위로 지정할 수 있습니다. 속성 CAP_PROP_POS_MSEC을 사용하면 밀리초 단위로 시작 지점을 설정할 수 있죠.
import cv2
# 영상 로드
cap = cv2.VideoCapture('1.mp4')
# 시작 시간을 10초로 설정 (10,000 밀리초)
start_time_ms = 10000 # 10초
cap.set(cv2.CAP_PROP_POS_MSEC, start_time_ms)
# 이후 프레임 읽기
ret, frame = cap.read()
if ret:
cv2.imshow('Frame', frame)
cv2.waitKey(0)
cap.release()
cv2.destroyAllWindows()
2️⃣ 특정 프레임으로 이동
영상의 특정 프레임 번호로 이동하려면 CAP_PROP_POS_FRAMES 속성을 사용합니다.
import cv2
# 영상 로드
cap = cv2.VideoCapture('1.mp4')
# 특정 프레임 번호로 이동 (예: 300번째 프레임)
start_frame = 300
cap.set(cv2.CAP_PROP_POS_FRAMES, start_frame)
# 이후 프레임 읽기
ret, frame = cap.read()
if ret:
cv2.imshow('Frame', frame)
cv2.waitKey(0)
cap.release()
cv2.destroyAllWindows()
단, 이 경우에는 영상의 FPS(프레임 속도)를 알아야 할 수도 있습니다. 유튜브 영상에서는 시간만 출력되지 몇 프레임인지는 표시도지 않고, 영상에 따라 어떤 것은 30, 어떤 것은 24 이렇게 프레임 속도가 다를 수 있기 때문이죠.
fps = cap.get(cv2.CAP_PROP_FPS)
print(f"영상 FPS: {fps}")
주의) 일부 영상 포맷(특히 압축률이 높은 MP4)에서는 set 메서드가 정확히 원하는 프레임으로 이동하지 않을 수 있습니다. 이는 키 프레임(I-frame)에 의존하기 때문입니다. 이 경우, 정확한 위치로 이동하려면 프레임을 순차적으로 읽어야 할 수 있습니다.
'기술 팁' 카테고리의 다른 글
Yolo 모델 출론 시 로그 출력 옵션 비활성화 방법 (0) | 2025.05.03 |
---|---|
MarkItDown : MS 의 문서 파일 변환 도구 (to Markdown) (0) | 2025.04.22 |
같은 모델, 다른 해시? Civit AI에서 겪은 작은 혼란 (0) | 2025.04.22 |
Live Preview : VSCode에서 HTML 파일 미리 보기를 위한 Extension (0) | 2025.04.18 |
영상 생성 모델 통합 도구 - Stability Matrix 간단 소개 (0) | 2025.04.13 |