[파이썬] moviepy 프레임별로 이미지 추출하기

Moviepy는 파이썬에서 동영상 처리를 위한 간편하고 강력한 라이브러리입니다. 이 블로그 포스트에서는 Moviepy를 사용하여 동영상의 각 프레임에서 이미지를 추출하는 방법을 소개하겠습니다.

1. Moviepy 설치하기

먼저 Moviepy를 설치해야 합니다. 다음 명령을 사용하여 pip를 통해 Moviepy를 설치할 수 있습니다.

pip install moviepy

2. 동영상에서 프레임 추출하기

Moviepy를 사용하여 동영상에서 프레임을 추출하려면 다음 단계를 따라야 합니다.

  1. moviepy.editor 모듈을 임포트합니다.
    from moviepy.editor import VideoFileClip
    
  2. 동영상 파일을 로드합니다.
    video = VideoFileClip("example.mp4")
    
  3. video.iter_frames()을 사용하여 동영상의 각 프레임을 가져옵니다.
    frames = video.iter_frames()
    
  4. 각 프레임에서 이미지를 추출합니다.
    frame_num = 0
    for frame in frames:
     frame_image = Image.fromarray(frame)
     frame_image.save(f"frame_{frame_num}.png")
     frame_num += 1
    

위의 코드에서 example.mp4는 추출할 동영상 파일의 경로입니다. iter_frames() 메서드는 프레임을 순회 가능한 객체로 반환합니다. 각 프레임은 3차원 넘파이 배열로 표현되며, Image.fromarray()를 사용하여 이미지 객체로 변환한 뒤 save() 메서드를 사용하여 이미지를 저장할 수 있습니다.

3. 실행 결과

위의 코드를 실행하면 동영상에서 프레임별로 이미지가 추출됩니다. 추출된 이미지는 frame_0.png, frame_1.png와 같이 프레임 번호를 포함한 파일 이름으로 저장됩니다.

마무리

이렇게 Moviepy를 사용하여 동영상에서 프레임별로 이미지를 추출하는 방법을 알아보았습니다. 이 기능을 활용하면 동영상 처리 및 이미지 프로세싱에 다양한 영상 데이터를 활용할 수 있습니다. Moviepy의 다른 기능들도 함께 탐색해 보세요!

이상으로 Moviepy 프레임별로 이미지 추출하기에 대한 블로그 포스트를 마치겠습니다. 감사합니다!