torchcodec 소개
torchcodec는 비디오 데이터를 PyTorch 텐서로 디코딩하는 Python 라이브러리입니다. CPU와 CUDA GPU 모두에서 작동하며, PyTorch 생태계와의 높은 통합성과 사용 편의성을 제공합니다. 이 라이브러리는 FFmpeg를 기반으로 작동하며, 사용자가 비디오 데이터를 손쉽게 기계 학습 모델에 활용할 수 있도록 돕습니다.
torchcodec의 장점은 다음과 같습니다:
-
Python 및 PyTorch 친화적 API 제공
-
FFmpeg의 복잡성을 추상화하여 효율적이고 올바르게 사용 가능
-
PyTorch 텐서 형태로 데이터 반환
또한, torchcodec은 다양한 해상도 및 FPS 비디오에서 높은 처리 속도를 보여줍니다. 22코어 CPU와 Nvidia A100 GPU에서 테스트를 수행한 결과는 다음과 같습니다:
(테스트 데이터는 1280x720, 60FPS, 120초 길이의 비디오 및 960x540, 29.7FPS, 206초 길이의 비디오입니다)
torchcodec은 아직 개발 중으로, 사용자의 피드백 등에 따라 일부 API가 변경될 수 있습니다. 사용 중 발생하는 이슈에 대해서 torchcodec 저장소에 남겨주세요!
torchcodec의 주요 기능 및 예시 코드
Video Decoding
비디오를 프레임 단위로 PyTorch 텐서로 변환합니다. 주요 메서드는 아래와 같습니다:
from torchcodec.decoders import VideoDecoder
decoder = VideoDecoder("path/to/video.mp4", device="cuda")
metadata = decoder.metadata # 비디오 메타데이터 추출
frames = decoder[0:10] # 프레임 범위 지정
Clip Sampling
비디오를 클립 단위로 샘플링하여 분석하거나 학습에 적합한 형식으로 제공합니다.
from torchcodec.samplers import clips_at_regular_timestamps
clips = clips_at_regular_timestamps(
decoder,
seconds_between_clip_starts=1.5,
num_frames_per_clip=4,
seconds_between_frames=0.1
)
torchcodec 소개 블로그
torchcodec GitHub 저장소
https://github.com/pytorch/torchcodec
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~