[python] 파이썬 moviepy로 동영상 화면 크기 조정하면서 페이드 인/아웃 효과 적용하기

Moviepy Logo

이번에는 파이썬 moviepy 라이브러리를 사용하여 동영상의 화면 크기를 조정하면서 페이드 인과 페이드 아웃 효과를 적용하는 방법에 대해 알아보겠습니다.

moviepy 라이브러리 설치하기

moviepy는 파이썬에서 동영상을 처리하고 편집하는데 사용되는 간편한 라이브러리입니다. 아래 명령어를 사용하여 moviepy를 설치합니다.

pip install moviepy

동영상 화면 크기 조정하기

moviepy를 사용하여 동영상의 화면 크기를 조정하려면 다음과 같은 단계를 따릅니다:

  1. VideoFileClip을 사용하여 원본 동영상 파일을 로드합니다.
  2. resize를 사용하여 동영상의 크기를 조정합니다.
  3. CompositeVideoClip을 사용하여 크기가 조정된 동영상과 원본 사이를 합성합니다.
  4. 결과 동영상을 저장합니다.

다음은 예시 코드입니다:

from moviepy.editor import VideoFileClip

# 원본 동영상 로드
clip = VideoFileClip('input.mp4')

# 동영상 크기 조정 (너비 기준으로 50%로 조정)
clip = clip.resize(width=clip.w//2)

# 원본 동영상과 크기 조정된 동영상 합성
final_clip = CompositeVideoClip([clip])

# 결과 동영상 저장
final_clip.write_videofile('output.mp4')

페이드 인/아웃 효과 적용하기

이번에는 동영상의 페이드 인과 페이드 아웃 효과를 적용하는 방법에 대해 알아보겠습니다.

moviepy를 사용하여 페이드 인과 페이드 아웃 효과를 적용하려면 다음과 같은 단계를 따릅니다:

  1. ColorClip을 사용하여 특정 색으로 채워진 클립을 만듭니다.
  2. CompositeVideoClip을 사용하여 원본 동영상과 페이드 인/아웃 클립을 합성합니다.
  3. 결과 동영상을 저장합니다.

다음은 예시 코드입니다:

from moviepy.editor import VideoFileClip, ColorClip, concatenate

# 원본 동영상 로드
clip = VideoFileClip('input.mp4')

# 페이드 인/아웃 색상과 지속 시간 설정
fade_duration = 2              # 페이드 인/아웃 지속 시간 (초단위)
fade_color = (255, 255, 255)   # 페이드 인/아웃 색상 (흰색)

# 페이드 인/아웃 클립 생성
fade_in = ColorClip((clip.w, clip.h), fade_color).set_duration(fade_duration).crossfadein(fade_duration)
fade_out = ColorClip((clip.w, clip.h), fade_color).set_duration(fade_duration).crossfadeout(fade_duration)

# 원본 동영상과 페이드 인/아웃 클립 합성
final_clip = concatenate([fade_in, clip.fadein(fade_duration), clip.fadeout(fade_duration), fade_out])

# 결과 동영상 저장
final_clip.write_videofile('output.mp4', codec='libx264', audio_codec='aac')

이제 moviepy를 사용하여 동영상의 화면 크기를 조정하면서 페이드 인과 페이드 아웃 효과를 적용하는 방법을 알게 되었습니다. 다양한 영상 편집 작업을 할 수 있는 moviepy의 다른 기능들도 함께 사용해 보세요!


참고 문서: